当前位置: 首页 > 面试题库 >

JSONPath:包含过滤器

居琛
2023-03-14
问题内容

嘿,我想知道是否有人知道使用正则表达式或通配符(或'%LIKE%'SQL中的pehaps
)的方式,以便可以使用JSONPath在大量JSON数据内进行搜索。

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

var obj = eval ( '({ "hey": "can you find me?" })' );

我希望能够浏览这样的数据:

$.[?(@.hey:contains(find))] // (in jQuery terminology)

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

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

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

我不想使用Dojo的JSONQuery,因为这将需要另一个库。但是,它可以让您执行此操作,这里是他们的示例:

[?description~‘*the*’]

问我是否要进一步澄清这个问题。


问题答案:

没关系,伙计们,找到了一种通过在JSONPath中使用ECMA来实现此目的的方法,尽管这不是本机的选择器/运算符。简单使用:

$.[?(/find/.test(@.hey))]

RegExp test()方法(JSONPath eval位于幕后)。

不过,如果有人有更好的答案,请告诉我。



 类似资料:
  • 问题内容: 我有一个对象映射,它以类似标签的方式使用嵌套对象(在我们的示例中)。每个标签可以属于一个客户/用户,并且当我们要允许我们的用户针对生成样式搜索时。 问题是,当我们运行查询时,如果一个对象有多个道具,并且当其他道具不返回时,如果多个道具之一与过滤器匹配,则当我们想要相反时- 如果一个道具返回false,则不返回vs。如果返回true,则返回true。 我在这里发布了一个完整的示例:htt

  • 我有以下X射线过滤器: 它工作得很好,除了我想要这样的东西: 问题是如何编写X射线过滤器/查询,以便URL不包含特定字符串。 谢谢Brian

  • 我使用的是JAVA中的Jayway JsonPath 2.2版本。关于这一点,我几乎没有问题。 示例JSON: > 如: 用于获取字符串的路径是预期结果:(字符串),但获取["type2"](数组) 如果我将其作为字符串提取时出错,请更正路径? 应用筛选器后,无法为结果数组编制索引。我怎样才能达到同样的效果? 如: 如果我使用路径,而不是返回第一个,它将返回 是否可以使用jsonPath从字符串中

  • 问题内容: 我无法将结果集限制为同时满足以下两个选项的范围和范围的文档。 我想匹配具有“ Core Grower”且介于1到100之间的文档,除非它们也具有“ Connectivity” ( 不在 35到65之间)。 给定以下映射(为简洁起见,省略了非嵌套字段): 我正在执行以下查询: 通过上面的查询,我得到了与“ Core Grower” 匹配且在1到100之间且还具有“ Connectivit

  • 问题内容: 我有很多行的python pandas数据框。从这些行中,我想切出并且仅使用“ body”列中包含单词“ ball”的行。为此,我可以这样做: 问题是,我希望它不区分大小写,这意味着如果出现Ball或bAll一词,我也希望它们。进行不区分大小写的搜索的一种方法是将字符串转换为小写,然后以这种方式搜索。我想知道如何去做。我试过了 但这是行不通的。我不确定是否应该在此等性质上使用lambd

  • 我有一个任意定义的JSON文档,我希望能够应用一个JSONPath表达式,就像属性的白名单过滤器:所有选定的节点及其祖先返回到根节点,所有其他节点都被删除。如果节点不存在,我应该得到一个空文档。 JSON. Net中似乎没有类似的东西,我在任何地方都找不到类似的例子,所以我建立了自己的例子。我选择将选定的节点复制到新构建的文档中,而不是尝试删除所有不匹配的节点。鉴于可能存在多个匹配项,并且文档可能