我有以下 JSON 结构:
[{"Name":"Ab1","Price":"153"},{"Name":"Cd2","Price":"179"},...]
我想写一个 XPath 命令来获取Price
元素,它Name
是Ab1
我尝试了以下方法:"//Name[Ab1]/Price"
但这对我不起作用。
JSONPath 语法与 XPath 非常不同。它只是基于 XPath 的概念。
在您的情况下,这应该是正确的 JSONPath。请试一试:
$[?(@.Name == 'Ab1')].Price
使用 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