给出以下json
数据:
[
{
"item":"T1",
"size":10,
"offset":3
},
{
"item":"T2",
"size":20,
"offset":5
}
]
查询expr:$.[? ((@size + @offset)<15)].item
查询什么都不返回。哪里不对了?看起来不支持(@size + @offset)
。如果是这样,那么正确的语法是什么?
答案 0 :(得分:0)
我想你可能需要尝试这个:
$。[? ((@ .size + @ .offset)&lt; 15)]。item
注意每个@符号后面的点。
答案 1 :(得分:0)
使用DefiantJS,您可以在JSON结构上执行XPath http://defiantjs.com/
在此站点(http://defiantjs.com/#xpath_evaluator),您可以粘贴JSON数据并尝试标准XPath。我测试了你的json数据并测试了这个XPath表达式,它按预期工作:
//*[size + offset > 15]/item
DefiantJS使用另一种方法扩展全局对象JSON; “搜索”,在javascript中,它看起来像这样:
var res = JSON.search(json_data, "//*[size + offset > 15]/item");
console.log(res[0]);
// T2