如何获得正确的JSONPath?

时间:2014-03-13 15:57:41

标签: json xpath jsonpath

我有以下JSON结构:

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

我想写一个XPath命令,获取PriceName

的元素的Ab1

我尝试了以下内容:"//Name[Ab1]/Price" 但这不适合我。

2 个答案:

答案 0 :(得分:2)

JSONPath语法与XPath非常不同。它只是基于XPath的概念。

在您的情况下,这应该是正确的JSONPath。请试一试:

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

答案 1 :(得分:0)

使用DefiantJS(http://defianjs.com),您可以使用XPath表达式查询JSON结构。 DefiantJS使用方法“search”扩展全局对象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 Evaluator; http://defiantjs.com/#xpath_evaluator