jsonpath:添加2个元素然后进行比较

时间:2013-01-14 08:02:14

标签: javascript jsonpath

给出以下json数据:

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

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

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

2 个答案:

答案 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