给定以下json
数据:
[
{
"item":"T1",
"size":10,
"offset":3
},
{
"item":"T2",
"size":20,
"offset":5
}
]
查询表达式:$.[? ((@size + @offset)<15)].item
查询不返回任何内容。哪里不对了?看起来(@size + @offset)
不支持。如果是这样,正确的语法是什么?
给定以下json
数据:
[
{
"item":"T1",
"size":10,
"offset":3
},
{
"item":"T2",
"size":20,
"offset":5
}
]
查询表达式:$.[? ((@size + @offset)<15)].item
查询不返回任何内容。哪里不对了?看起来(@size + @offset)
不支持。如果是这样,正确的语法是什么?
使用 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
我想你可能需要试试这个:
$.[? ((@.size + @.offset)<15)].item
注意每个 @ 符号后面的点。