问题标签 [jsonpath]

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 投票
1 回答
2162 浏览

json - JSONPath / QML - 获取字符串数组中的元素

所以我正在为 QML 使用 JSONListModel,我需要帮助来解析这个JSON 文件

这是一个获取在线玩家姓名的 Minecraft 服务器查询。但是,我无法将每个节点添加到我的 List 委托。

这是我的代码:

如您所见,我有一个查询,它是我要查看的元素的 JSONPath。

我想得到的是球员的名字,一个接一个。我使用通配符来获取所有名称,但是当我将文本的文本设置为模型 ("$['players'][0-x]") 时,我得到:

这指向该行:

在 JSONListModel.qml 中。

所以,是的,我猜我的路径是错误的。我不知道如何处理数组,例如链接中 JSON 文件中的数组。

如果文件类似于:

我可以做

但我不能,因为节点没有名字。它们只是价值观。

有人能帮我吗?

0 投票
1 回答
1879 浏览

java - JsonPath:如何提取多个值并使用函数。?

XPath 解析这个表达式“concat(name,type)”。我也可以在 JsonPath 中执行此操作吗?- 一次提取多个值并在其上使用一些功能。

我正在使用谷歌的 JsonPath 的 java 实现。

谢谢!

0 投票
2 回答
2075 浏览

java - 使用 JsonPath 在不知道密钥的情况下提取值

我有一个这样的json字符串:

我想使用JsonPath提取文件名 {"fileA.c","fileB.txt"} 。请注意,文件的数量是未知的。

问题是,我不知道文件名是键还是值:

  • 如果它是一个密钥……那么我当然不知道密钥名称,因为那是我要提取的信息。
  • 如果它是一个值,那么它的键是什么?
  • 我可以使用 JsonPath 提取文件名吗?如果是这样,怎么做?
  • 如果 JsonPath 不能做到这一点,是否有任何 Json 的 Java 库可以实现这一点?
0 投票
1 回答
623 浏览

json - JSON 路径查询可能性

有什么可能性JSONPath queries。以下是我从JSONPath - XPath for JSON找到的查询

在以下方面也可能有效的查询JSONPath

当我使用在线评估器JSONPath Online Evaluator尝试这些查询时,这些查询不起作用,所以我想知道什么是正确的可能性集。

0 投票
1 回答
4470 浏览

json - 有没有办法在 JSONPath 中获取字符串值的子字符串?

基本上,我需要使用 JSONPath 获取字符串值的一部分。我无法先使用 JSONPath 获取完整值,然后再使用另一种语言获取其中的一部分。

有没有办法在 JSONPath 中做到这一点?

0 投票
1 回答
3932 浏览

java - 如何断言 JSON 节点具有分配给它们的某些值的子节点?

我有一个 JSON 字符串,如下所示:

有没有办法在同一个语句/断言中断言IDofThing123 ANDname是“ Yet Another Thing” ?

目前,我似乎无法使用过滤器:

我得到以下异常:

java.lang.IllegalArgumentException:无效的容器对象

这可能是因为[]上面的 JSON 字符串中没有数组表示法吗?应该有吗?

在相关说明中,是否有关于使用 Hamcrest(带有 JSON 断言)的很好的介绍?我知道官方教程,但我似乎总是弄错......

更新:这样做的理由是:如果我得到几个Thing元素,我不能保证他们的顺序(所以我不能匹配Thing[1](除非我循环遍历它们))?如何确保一个元素同时具有正确的 ID 和正确的名称?如果我单独检查孩子,我会不会冒一个人Thing有正确的名字,另一个人有正确的 ID,但没有一个人同时拥有这两者的风险?(这种 JSON 格式是否可行,或者在这种情况下我是否必须使用数组,例如"Thing": [ { ... }, { ... } ], ...

PS:我最后尝试使用上面的 JsonPath 如下:assertEquals("Yet Another Thing", JsonPath.read(json, "$.Things.Thing[?(@.ID == '123')].name")); 所以这也是异常可能来自的地方。另外,我最初在 JsonPath 邮件列表上问过这个问题,但到目前为止没有得到任何回复,所以希望我能更快地在这里得到帮助...... :)

0 投票
3 回答
1191 浏览

javascript - Angular / Javascript“四舍五入”长值?

我有以下 JSON:

我有以下 Angular/JS 代码:

令人惊讶的是(对我来说,我不是 JS 专家),我发现某些东西(?)将值四舍五入到 1000 的精度(四舍五入最后 3 位数字)。这是一个问题,因为这是某物的哈希码。

另一方面,如果我将值作为字符串写入 JSON,例如 -

这不会发生。但这给我带来了一个不同的问题(使用 JMeter/JSON 路径,它通过运行我的查询来提取值 ["4830991188237466859"] $.hashcode- 我不能将其用作 HTTP 请求参数(我需要添加?hashcode=...到查询中,但是我最终得到?hashcode=["..."]

因此,我感谢以下方面的帮助:

  1. 了解谁和为什么——四舍五入我的哈希,以及如何避免它
  2. JMeter/JSON 路径帮助

谢谢!

0 投票
2 回答
170 浏览

json - 如何获得正确的 JSONPath?

我有以下 JSON 结构:

我想写一个 XPath 命令来获取Price元素,它NameAb1

我尝试了以下方法:"//Name[Ab1]/Price" 但这对我不起作用。

0 投票
3 回答
841 浏览

javascript - 从 JSON 数据(客户端或服务器端)获取 JSONPath

我有一个这样的 JSON 对象:

根据 JSONPath 规范,如果我想选择所有“标题”,我将使用:

现在,对于我的 JSON 数据中的每个不同属性,我需要以一般方式获取其 JSONPath 字符串(例如,我不需要完全“标题”的 JSONpath - 像$.photos.photo[1].title- 但一般的 JSONpath - like $.photos.photo[*].title)。

编辑:我会尝试更好地解释(对不起我的英语不好!),我想要做的是以这种方式获取与每个属性相关的 JSONPath:

等等...

如何用 JS 或 PHP 语言解决这个问题?谢谢!

0 投票
4 回答
3125 浏览

json - 选择一个没有节点名称的 JSON 元素

我有多个具有相同架构的 JSON 文件:

使用 xpath 或 JSONPath 我想将每个元素提取到一个表中:

我使用查询和限制字段没有问题..query..limit但我找不到提取id字段的语法(即q0q1)。

我一直在尝试@*$*但没有成功。那么有没有办法选择一个没有节点名的 JSON 元素呢?

正如评论中所说,我正在使用 talend tExtractJSONField 组件,它使用 XPath 来解析 JSON。