JSONPath:包含过滤器

Dan*_*eam 9 javascript regex jquery json jsonpath

嘿所有,我想知道是否有人知道使用正则表达式或通配符运算符(或'%LIKE%'SQL中的pehaps )的方法,所以我可以使用JSONPath在一大组JSON数据中进行搜索.

例如(是的,我正在解析,而不是eval( )我在应用程序中的数据):

var obj = eval ( '({ "hey": "can you find me?" })' );
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样查看数据:

$.[?(@.hey:contains(find))] // (in jQuery terminology)
Run Code Online (Sandbox Code Playgroud)

其中参数的内容是{ "key" : "value" }我数据中对中的部分或全部值.

目前,我只找到文件上>,<,=,和!=关系运算符,它不给我那么多的灵活性.

有谁知道一个方法可以让我只是刚刚 JSONPath找到这个数据(不通过的所有条目具有循环)?

我不想使用Dojo的JSONQuery,因为这需要另一个库.但是,它允许你这样做,这里是他们的例子:

[?description~‘*the*’]
Run Code Online (Sandbox Code Playgroud)

问我是否想要更多澄清这个问题.

Dan*_*eam 17

大家好,伙计们,通过在JSONPath中使用ECMA找到了一种方法,尽管这不是一个原生的选择器/运算符.使用简单:

$.[?(/find/.test(@.hey))]
Run Code Online (Sandbox Code Playgroud)

RegExp test()方法(JSONPath eval在幕后).

但是,如果有人有更好的答案,请告诉我.


小智 6

此外,可能对某人有用。 链接到 JSONPath 表示法

它对我有用(JMeter 4.0)

=~

匹配 JavaScript 正则表达式。例如, [?(@.description =~ /cat.*/i)] 匹配描述以 cat 开头的项目(不区分大小写)。