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

如果响应中有两个放心数组,如何设置root

鲁才艺
2023-03-14

我的API的响应是这样的:JSON

"Catalog": 
[
        {
            "longDescription": "some long description",

        "Price": [
            {
                "priceValue": "60.0",
            }
        ],
        "name": "some name",
       and so on.

我想获得价格值,我正在使用jsonpathevaualtor . setroot(" catalog ")?我是使用(“price”)还是使用其他东西来遍历目录数组和价格数组。

共有2个答案

齐阳
2023-03-14

我建议将json反序列化为POJO,然后使用getter从json中提取信息,特别是当json有点复杂时(具有列表和嵌套对象)。

RestAs(再保险)提供了去序列化的选项。还有其他类似gson和jackson的库。就我个人而言,我发现gson很容易使用。查看以下链接以获得更多见解。

https://futurestud . io/tutorials/gson-mapping-of-arrays-and-list-of-objects

https://github.com/rest-assured/rest-assured/wiki/usage#deserialization

终洛华
2023-03-14

因此,基本上,您的json的解析结构可以放心,这是为了获得“Price”数组

List<Map<String, List<Map<String, String>>>>

以下是解决方案

首先,将根目录设置为catalog

JsonPathEvaualtor.setRoot("catalog")

要获取与数组中第一个映射元素相对应的priceValue,请执行以下操作

response.jsonPath().getList("$").getMap("Price").get(0).getMap(0).getString("priceValue");

我不确定上面的代码是否没有错误,因为我没有执行它。希望它能给你一些关于解决方案方向的想法

请参阅本教程,了解更多示例,请放心响应中的ono解析列表和映射https://www.testingexcellence.com/parse-json-response-rest-assured/

 类似资料:
  • 放心,当我们这样做时 抛出的错误总是连续的,也就是说,如果状态代码失败,它不会检查contentType是否是JSON。 此外,抛出的错误始终是,断言错误(预期:200,实际:404)。无法从中了解实际响应是什么,如果启用日志记录,它将打印在标准输出上,但其他任何方式都不可用。 是否有任何方法来构建或设置类似于我们如何实现<code>过滤器 我有一个 rest api 框架,其中大多数验证都是使用

  • 我不太了解React Material UI网格系统。如果我想使用表单组件进行登录,那么在所有设备(移动设备和桌面设备)上将其置于屏幕中心的最简单方法是什么?

  • 问题内容: 这是我的代码: 但是,当我从浏览器向服务器发出请求时,出现此错误: 我也尝试过这种方法,在请求之后设置响应头: 没有骰子。我犯了同样的错误。有没有一种方法可以只在route函数中设置响应头?这样的事情将是理想的: 但我还是找不到这样做。请帮忙。 编辑 如果我使用POST请求卷曲URL,如下所示: 我得到这个回应: 有任何想法吗? 问题答案: 你可以很容易地做到这一点: 查看和 但是有些

  • 有一个需要实现的REST APIendpoint用于获取一些信息并将后端请求发送到另一个服务器,来自后端服务器的响应必须设置为最终响应。我的问题是如何在javax.ws.rs.core.响应中设置响应体? 这里的消息是我需要设置的。但是我尝试了几种方法。没有一个奏效。

  • 我是大一新生,请放心。我有一个获取响应体的简单测试,我想验证响应体是否与我的POJO类匹配。 这是我的测试: 这是我的POJO类: 那么如何验证响应体结构等于我的POJO类呢? 提前感谢

  • 根据业务需要,我必须比较API URL的JSON响应,假设这是一个通用解决方案。JSON比较需要包括值不匹配以及模式不匹配。 按照要求是一个通用的解决方案。我无法根据响应创建java对象并将其进行比较,因为响应JSON可以是任何模式的任何东西,因此JSON到对象约定是不可能的,因为对象结构无法事先定义,并且会随着每组API而变化。 我尝试的:尝试实施 方法1)flipkart孵化器/zjsonpa