繁体   English   中英

放心,Java:如何获取想要的JSON对象/主体?

[英]Rest assured and Java: how to get wanted JSON object/body?

假设我有一个GET请求,返回的内容如下:

 [
  {
    "id": 1,
    "name": "Mark"
  },
  {
    "id": 2,
    "name": "Steve"
  },
  {
    "id": 3,
    "name": "Bill"
  }
]

如何从列表返回想要的对象? 或包含此JSON作为字符串的东西,或者什么是从响应中仅获取其中一项的正确方法,例如,让我只需要获取Bills信息,因此我想解析JSON来获取以下内容:

  {
    "id": 3,
    "name": "Bill"
  }

不,我不想在GET请求URL中进行此解析。 我需要能够从GET请求返回的所有内容的列表中获取它。

"$[2]"

在JsonPath中,$表示查询的JSON的匿名根,对于这种情况,当您需要直接引用它而不是诸如"stuff.things[8]"类的东西时,

在这种情况下,您要分析的数组是匿名根,因此您将其称为$ 然后,您想要该数组索引2处的元素,因此它是$[2]

我做了另一个真正适合我需要的解决方案。 我将JSON响应反序列化为JSON主体对应的POJO类列表:

List<MyEntity> myList = new ArrayList<>();

    myList = given().
            contentType(ContentType.JSON).
    when().
            get(getURL).
    then().
            extract().
            body().
            jsonPath().
            getList(".", MyEntity.class);

这样,我可以获得初始化的MyEntity类的列表,并且我可以做任何我需要做的事情,例如,我只需要修改如下值:

myList.get(0).setName("newName");

然后,我可以通过POST / PUT调用或类似的方法将其发送回去。 奇迹般有效!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM