2014-03-13 54 views
0

我有以下JSON結構:如何獲得正確的JSONPath?

[{"Name":"Ab1","Price":"153"},{"Name":"Cd2","Price":"179"},...] 

我想禾寫的XPath命令,獲取Price的元素,其NameAb1

我試過如下:"//Name[Ab1]/Price" 但是,這是行不通的爲了我。

+1

對於我的無知感到抱歉,但不是xpath for xml only? – Leo

+0

你用什麼工具來查詢xpath類似於json結構的表達式?例如,有JSONPath,https://code.google.com/p/jsonpath/。那是你正在使用的? –

+0

是的,我使用JSONPath – gurehbgui

回答

2

JSONPath語法與XPath非常不同。它只是基於XPath的概念。

這應該是你的情況下正確的JSONPath。請試一試:

$[?(@.Name == 'Ab1')].Price 
0

隨着DefiantJS(http://defianjs.com),您可以使用XPath表達式查詢JSON結構。 DefiantJS使用「搜索」方法擴展全局對象JSON,並將匹配返回爲類似數組的對象。

這是一個示例代碼;

var data = [ 
     { 
      "Name": "Ab1", 
      "Price": "153" 
     }, 
     { 
      "Name": "Cd2", 
      "Price": "179" 
     } 
    ], 
    found = JSON.search(data, "//*[./Name='Ab1']/Price"); 

document.getElementById('output').innerHTML = found[0]; 

要看到這個代碼的行動,看看這個小提琴; http://jsfiddle.net/hbi99/a9uZ3/

有關更多有用的XPath表達式,請參閱此處的類似XPath評估程序; http://defiantjs.com/#xpath_evaluator