问题标签 [json-path-expression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
45 浏览

jsonpath - 过滤器不起作用的 Json 路径逻辑非运算符

我有 JSON 数据,想在 JSONPath 中使用逻辑非运算符,但是,我想动态使用它,因为我的输入字符串包含许多过滤器,我将这些过滤器转换为 JSONPath 查询。

v1/movie?filter=not metadata.sample eq "NETFLIX"这样我正在使用我的 APY。这应该转换为[?(!(@['metadata']['PLM-CODE'] == 'NETFLIX'))]使用 JSONPath 的 Filter 对象。

现在下面这个完美地工作

!但是使用下面的代码时我不能直接添加:

但解析正在将其转换为[?(@['metadata']['PLM-CODE'] == 'NETFLIX' ! null)]

0 投票
1 回答
209 浏览

postgresql - Postgres jsonb_path_query 按长度过滤子数组

在 Postgres 13.3 中,我想从一个jsonb值中提取特定长度的子数组:

但是,这不会返回任何内容(0 行)。

我究竟做错了什么?请注意,我想继续使用jsonpath- 虽然此示例已简化,但实际案例涉及更多,并且依赖于 jsonpath 表达式的灵活性。

0 投票
2 回答
40 浏览

javascript - JSON数据集中的数据共现

我无法提取 JSON 信息。我的 JSON 文件包含一部小说的 100 章。每章都包含该章中的许多字符。

例如:

我的目标是设计一种方法来提取两个字符在整本书中同时出现的次数,而两个字符在一章中只能同时出现一次。例如,在 100 章内,我想知道 PERSON A 和 PERSON B 共出现了多少次。

我有两种方法,A. 使用 JSON PATH 并过滤掉数据集(其中 PERSON A 和 B 共同出现),并计算它们共同出现的章节数。(我也不知道要查询什么:P) B. 虽然我不太擅长 JAVASCRIPT。我的想法是定义一个整数,然后在 JSON 文件的每一章中运行 for 循环。

我想知道你们是否可以在这方面与我分享你的知识!谢谢!

0 投票
1 回答
162 浏览

json - 在jsonpath中转义正斜杠

我正在尝试编写一个简单的 JSON 路径查询

从上面的 JSON 试图得到 20

我正在尝试使用以下拉 20,但没有获得价值。给出空结果

0 投票
2 回答
66 浏览

normalization - 如何交叉引用 JMESPath 或 JSONPath 中的属性?

我正在尝试使用 jmespath 来查询我的 json,并且我正在尝试访问更高级别的属性。

下面是我的JSON:

我想获得vmId等于DefaultVMTypeID的所有测量值。

我尝试了以下查询: [properties.DefaultVerticalmeasurementTypeID, properties.Verticalmeasurements.measurements[?VerticalmeasurementTypeID]] | map(&[1].VerticalmeasurementTypeID==@[0], @)

但是当将map应用于数组时,@ 指的是数组的元素,而在 map 内部,我无法访问DefaultVMTypeID

我也尝试过转换对象的每个元素。

任何线索将不胜感激。

0 投票
1 回答
120 浏览

apache-camel - 如何在 Apache Camel 中为 jsonpath 编写存在谓词?

在我的 Apache Camel 应用程序中,我有多个条件来检查 JSON 中是否存在键。我想减少样板代码,因此我需要将我Expression的 s 转换为Predicate.

我的代码与Expressions:

另请参阅:JSONPATH

我的代码与Predicates:

另请参阅:谓词

但这不起作用,因为没有suppressExceptions参数(请参阅 参考资料BuilderSupport#jsonpath)。不幸的是,也没有方法exists(请参阅 参考资料ValueBuilder)。

如何编写Predicate用于检查 JSON 中是否存在密钥的代码?

0 投票
2 回答
200 浏览

java - JSONPath:使用子值过滤器获取根数组对象

我试图获取 JSONPath 表达式来过滤我的 JSON 并使用子数组的值获取整个运动对象。

我有以下 JSON:

我需要使用 JsonPath 表达式获取“inplay == 0”的整个运动对象。

结果应如下所示:

地区和联赛计数可以> 1 因此$[?(@.regions[0].leagues[0].inplay == 0)]不适合

试过$[?(@.regions[*].leagues[*].inplay == 0)],但它不起作用

0 投票
1 回答
96 浏览

jsonpath - 如何让 JSONPath 返回匹配元素父级的属性

我有一个与预期节点匹配的 JSONPath 表达式。但我想返回该节点父节点的属性。

这是源json:

这是 JSONPath 表达式:$.recordList[.customFieldList[?(@.value.name=='JEANS')]]

它返回以下匹配:

但是,我要返回的是 PARENT 元素的 .internalId 属性,该属性包含customFieldList与上述元素匹配的数组。

也许通过屏幕截图:JSONPath 评估器

如何更改我的 JSONPath 表达式以返回指定的父属性?

0 投票
1 回答
147 浏览

c# - 如果 jsonpath 表达式的计算结果为 true,如何使 SelectTokens() 选择根元素

所以我目前正在使用一些令牌过滤,并且有一种情况我需要使用 SelectTokens() 方法根据 C# 中的过滤条件过滤令牌,如果单个值与查询匹配,我想要所有对象和/或根元素,为简洁起见,这是我想要将过滤应用于的底层数组之一:

例如,如果单个值大于 10,我会想要该数组中的所有元素,否则没有返回值,所以如果我要使用这样的查询:$[?($[?(@.unitPrice >= 10)] empty false)]在我的 SelectTokens() 调用中,我希望返回相同的列表,如果比较值高于 13,则返回一个空数组。

此示例在某些测试人员(例如https://jsonpath.herokuapp.com/ )中查询时工作得很好,但在大多数其他测试人员以及我自己的 C# 代码中似乎无效,我试图找到其他替代方案来获得这个相同的查询功能,每次我找到实现此功能的有效方法时,结果都无法在Newtonsoft.Json.Linq.SelectTokens()我使用的实际方法中工作。

似乎每当我尝试$在实际查询中使用运算符时,它只是拒绝在 newtonsoft 的 jsonpath 实现中工作,而且我似乎找不到试图实现与我相同的事情的人,所以我只是好奇如果有一种简单的方法可以与 newtonsoft 的实现一起使用。

这是我尝试做的最接近的匹配,虽然它是针对单个令牌而不是数组,但它也仅适用于特定测试人员JsonPath: Selecting root level field if satisfies a condition

0 投票
1 回答
145 浏览

jackson - 是否可以根据给定 Json 的 JsonPath 获取行号?

我有一个像下面这样的 JSON,并且有 JSONPath 例如,

我想在相应的 JSON 中找到 JSONPath 的行号。我正在使用 Jackson 和 JayWayPath 库,但无法弄清楚,有没有办法根据 JSONPath 找到行号。如果有人可以提出一些想法,我们将不胜感激。谢谢。