javascript - JSONPath :contains filter

标签 javascript jquery regex json jsonpath

大家好,我想知道是否有人知道使用正则表达式或通配符运算符(或者 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/

相关文章:

javascript - 比较用户输入的日期值 "instantly"

javascript - 如何从 Blob 创建文件对象?

jquery - 向选项卡添加箭头导航

regex - 在 Django 模板中使用正则表达式

javascript - 如何居中div?

javascript - AngularJS 下拉菜单可以输入值

jquery - 点击悬停菜单中的链接

jquery - 使用 Ajax/JSON 的 jsTree 搜索不调用 URL

css - 匹配 css url 的正则表达式

javascript - 在 JavaScript 中使用多行正则表达式模式来指示输入字符串的开头是不可能的吗?