大家好,我想知道是否有人知道使用正则表达式或通配符运算符(或者 SQL 中的 '%LIKE%'
)的方法,这样我就可以使用 JSONPath 在大量 JSON 数据中进行搜索。
例如(是的,我正在解析,而不是 eval( )
在应用程序中处理我的数据):
var obj = eval ( '({ "hey": "can you find me?" })' );
我希望能够像这样查看数据:
$.[?(@.hey:contains(find))] // (in jQuery terminology)
参数的内容是 { "key" : "value" }
中的部分或全部值在我的数据中配对。
目前我只找到关于 >
的文档, <
, =
, 和 !=
关系运算符,它没有给我太多的灵 active 。
有谁知道我可以仅 JSONPath 来查找此数据(无需遍历所有条目)的方法吗?
我不想使用 Dojo 的 JSONQuery,因为这需要另一个库。但是,它可以让你这样做,这里是他们的例子:
[?description~‘*the*’]
如果你想进一步澄清这个问题,请问我。
最佳答案
没关系,伙计们,找到了一种方法,只需在 JSONPath 中使用 ECMA,尽管这不是 native 选择器/运算符。简单使用:
$.[?(/find/.test(@.hey))]
RegExp test( ) 方法(JSONPath eval
在幕后)。
不过,如果有人有更好的答案,请告诉我。
关于javascript - JSONPath :contains filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003252/