0

给定以下json数据:

[
 {
   "item":"T1",
   "size":10,
   "offset":3
  },
  {
    "item":"T2",
    "size":20,
    "offset":5
  }
]

查询表达式:$.[? ((@size + @offset)<15)].item

查询不返回任何内容。哪里不对了?看起来(@size + @offset)不支持。如果是这样,正确的语法是什么?

4

2 回答 2

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
于 2014-01-04T13:04:08.217 回答
0

我想你可能需要试试这个:

$.[? ((@.size + @.offset)<15)].item

注意每个 @ 符号后面的点。

于 2013-06-26T16:53:45.687 回答