当前位置: 首页 > 知识库问答 >
问题:

在 RestAssured 中通过 JsonPath 访问匿名数组的元素

任文乐
2023-03-14

我从以下服务返回了一个JSON匿名数组:

[
  {"foo":1, "bar":2 , "baz":3 },
  {"foo":3, "bar":4 , "baz":5 }
]

如何访问条形图元素,例如

expect().body("$[*].bar", hasItems(2,4)) 

我尝试了我在这里以及Stefan Gö ssner的JsonPath页面上找到的几种可能性,但是无论我尝试什么,都会出现异常。我的问题似乎直接来自试图访问该项目列表。

共有2个答案

蒙墨竹
2023-03-14

为了完整起见,Johan的答案是正确的:检查“bar”元素的另一种方法是

expect().
    body("[0].bar", equalTo(2)).
    body("[1].bar", equalTo(4));
乌修筠
2023-03-14

鉴于您有:

[
  {"foo":1, "bar":2 , "baz":3 },
  {"foo":3, "bar":4 , "baz":5 }
]

您可以放心地执行以下操作:

then().body("bar",hasItems(2,4)) 

或者

expect().body("bar",hasItems(2,4)) 

如果您使用的是旧版API。

 类似资料:
  • 假设我有一个抽象类: 使用方法如下: 这段代码在编译时失败,这是意料之中的。 但以下代码编译成功,这似乎令人惊讶: 不同之处在于,在后一种情况下,我访问的方法没有命名引用。为什么编译器允许这样的访问?

  • 问题内容: 我想创建一个客户端函数,该函数可以使用客户端变量来接收和执行任意命令。我将使用socket.io从服务器发送这些函数,以发送包含匿名函数的JSON对象,这将是我的命令。它看起来像以下内容: 但是,当我尝试时,客户端接收到一个空的json对象(),然后抛出异常,因为数据不包含任何执行方法。这是怎么了? 问题答案: JSON不支持包含定义/表达式。 相反,您可以做的是使用所需的s 定义一个

  • 问题内容: 我试图在把手模板内的数组中指定项的索引: 使用这个: 如果上述方法不可行,我将如何编写一个可以访问数组中特殊项目的助手? 问题答案: 尝试这个:

  • 问题内容: 我正在尝试使用字符串数组从XML获取资源,因为它当前处于循环中。 谁能建议我该怎么做? 为了清楚起见,资源名称与数组字符串名称相同。 到目前为止,我已经尝试过: 问题答案: 我没有误会你 是你所需要的

  • 问题内容: 在javascript中,存在创建匿名函数并立即调用它的常见模式(通常称为自执行匿名函数或立即调用的函数表达式)。 使用Java 8 lambda,是否有标准方法可以复制此行为?有点像。 这个问题基本上提出了相同的问题,但是对于Java7。我正在明确地寻找使用lambda的构造。 问题答案: 也不是没有声明类型。由于Java是静态类型的语言,并且函数不是一等公民,因此编译器需要知道la

  • 在javascript中,常见的模式是创建匿名函数并立即调用它(通常称为自动执行匿名函数或立即调用的函数表达式)。 对于Java8 lambdas,是否有复制这种行为的标准方法?类似于