2013-01-14 26 views
0

鉴于以下json数据:jsonpath:加2元,然后比较

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

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

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

回答

0

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

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

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

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