我有以下JSON结构:
[{"Name":"Ab1","Price":"153"},{"Name":"Cd2","Price":"179"},...]
我想写一个XPath命令,获取Price
为Name
Ab1
我尝试了以下内容:"//Name[Ab1]/Price"
但这不适合我。
答案 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