0

我有以下 JSON 结构:

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

我想写一个 XPath 命令来获取Price元素,它NameAb1

我尝试了以下方法:"//Name[Ab1]/Price" 但这对我不起作用。

4

2 回答 2

2

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

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

$[?(@.Name == 'Ab1')].Price
于 2014-03-14T03:58:53.480 回答
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 Evaluator; http://defiantjs.com/#xpath_evaluator

于 2014-05-18T22:26:41.357 回答