问题标签 [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 投票
2 回答
4933 浏览

json - Mule ESB:将 JSON 对象转换为另一个对象

我有以下流程:

流词很好,正如您所见,JSON 对象将 Database 对象转换为以下内容:(带有单个对象的 JSON 数组):

请注意,444 是一个数值(它周围没有引号)。

我想做的事

  • 创建一个没有数组的简单 JSON 结构

  • 将 444 从数值更改为字符串值

  • 让它看起来像:(将 444 放入另一个结构中)

    {“总计”:“444”,“日期”:“14/07/14”}

我知道要获取系统日期,我执行以下操作:

...而且我知道要从原始字符串中获取 444 值,我执行了以下操作:

但我不知道下一步该做什么。

现在我使用了 JSON 对象来查看数据库连接器的结果,接下来我要做什么对象来创建我的新结构。

我是否使用另一个 JSON 对象,我将如何构造表达式?

0 投票
2 回答
9325 浏览

arrays - 数组长度的 Jsonpath

给定json,例如

已知有名为 arr1 和 arr2 的数组,是否有长度的 jsonpath 表达式适用于空数组和非空数组的数组

值得注意的是,我使用谷歌代码的 JsonPath 库进行了几次尝试:

但它给出了一个错误,说数组没有属性。

我正在寻找解析为数组长度的单个字符串路径,而不是对中间体的后续调用,例如

任何复杂程度的表达都是可以接受的。

对于上下文,我想为测试套件提供路径/值对,这对值很有用,但我不能用这种模式断言数组大小。

0 投票
2 回答
716 浏览

java - 在 Talend 5.5 中使用正则表达式的 jsonpath

我有这个 json 字符串:

我想提取在 number: "0", "1", "2"... 等节点之后的所有 id。

我已经通过使用 jsonpath: 成功获得了一个 id:$.response.data.0.id并得到了"15124". 但我正在寻找一个 jsonpath,它将提取 Json 字符串中的所有 id。换句话说,这是扩展输出:15124, 13498, 14296, 13364, 14060, 13672.

这是我拥有的 Json 字符串:

感谢所有的帮助者!

0 投票
2 回答
1774 浏览

json - Mule ESB 无法触发选择“何时”条件

我无法让 Mule ESB 触发选择“何时”条件

我将 Hello World 流转换为接受 JSON 对象(将 JSON 插入到 Object 节点)并执行 Choice 节点。

但我无法触发 CHoice 语句的“何时”条件;我总是去默认情况下。下面是流程:

在此流程中,我使用以下条件和 SetPayload(默认情况)语句:

下面是我的输出:

如您所见,我没有触发“何时”子句。但是,SetPayload 确实将 payload.get('uid') 输出为“ABC”

所以我再试了三个不同的时间,三个不同的“何时”条件:

但在所有这三种情况下,我得到以下信息:

我该如何解决这个问题?

谢谢

0 投票
1 回答
1803 浏览

json - Mule ESB:无法取消引用 JSON 对象数组

我有一个返回以下 JSON 对象的流程:

“1”代表 select sum() 语句中的数据库行。

这是一个不寻常的 JSON 对象,在 JSONPath 中取消引用 444 的值的不寻常方法如下:

这是我用来打印整个 JSON 对象的流程:

所以我使用以下 SetPayload 表达式,并得到以下结果:

所以现在我想简单地提取值 444。所以我想我需要做一些类似的 JSONPath 语句

所以我尝试以下 SetPayload 表达式并得到以下结果:

好的,这是有道理的,所以我再试一次:

那么我该如何编写这个 SetPayload 表达式,以便在给定 JSON 对象的情况下返回 444 的值

谢谢

编辑

我改变了我的流程如下:

但是,我得到以下输出:

0 投票
1 回答
697 浏览

json - Mule ESB:如何在选择节点上获得部分匹配

我有以下流程:

我尝试将 ABC 的 uid 匹配到 ABC,我得到了一个成功的数学,见下文

我现在需要做的是尝试仅匹配 uid 的前三个字符

换句话说,给定以下 JSON 对象

我想只用前三个字母 (ABC) 来满足条件

所以我保留原始流程,并将 JSON 对象更改为

...我得到以下回复:

C:\curl>类型 input2.txt { "uid" : "ABC002" }

如您所见,它没有达到输入字符串 ov ABC002 的 when 条件

我使用的when Condition是

如何更改此表达式,使其仅检查传入字符串的前三个字符?

谢谢

0 投票
2 回答
3684 浏览

transform - 加特林将变换与 jsonpath 相结合

我正在尝试从此响应中提取 security_token :

我试过结合 transform 和 jsonPath :

但我收到此错误:

让我知道是否有一种简单的方法可以实现这一目标。

谢谢

0 投票
1 回答
389 浏览

json - Mule ESB,如何在 JSON 数组中添加一组数字

我有一个数据库连接返回看起来像这样的东西(在 Object-to-JSON Transformer 之后:

请注意 JSON 语句包含在 JSON 数组中。

鉴于上述结构,如何将数组第二列中的所有数字字段相加?除了来自数据库的 SEELCT SUM() 之外,我将使用哪个节点。

谢谢

0 投票
1 回答
558 浏览

json - JSON 有效负载的 Jsonpath

我有以下 JSON 有效负载。我想以通用方式使用 JSON 路径表达式提取值“value_for_key_attribute_Y”(即没有硬编码任何数组值,如 [1])有什么想法吗?

0 投票
1 回答
1859 浏览

json - Gatling:获取 REST 资源,更改 JSON 叶,回发

我正在编写一个测试脚本,使用 Scala 在 Gatling 中测试一个 REST 接口。

对于特定的 REST 资源,这是我想要实现的:

  1. 获取资源(这将在正文中为我提供 JSON 数据)。
  2. 使用 jsonpath 更改正文中的值。
  3. 将修改后的正文发布回相同的 url

我已经成功使用 1 和 3。剩下的唯一问题是更改似乎是字符串格式的 json 数据。

测试步骤

部分场景

我收到以下错误