如何使用restasured提取具有特殊条件的结果?

t0ybt7op  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(385)

我有一个列表作为回复返回。我需要一个不到5岁的人的名字

{
   "person": {
    "list": [
        {
          "id":A135443
          "name":"Jeff"
          "start":5
        },
        {
          "id":A135410
          "name":"JohnDoe"
          "start":5
        },
        {
          "id":A135418
          "name":"Adam"
          "start":4
        },
        {
          "id":A135431
          "name":"Harry"
          "start":3
        },
         ....
   ]}}

在上述代码中,起始值小于5的“亚当”和“哈利”应存储在阵列中。
如何在数组中存储满足特定条件的结果?

uqzxnwby

uqzxnwby1#

有很多方法可以做到这一点,这里有几个例子是非常不言自明的-让我知道,否则,我会很高兴地解释
备选案文1:

Response res = RestAssured.given().when().get("http://localhost:8080/trial/1");
JsonPath js = res.jsonPath();
List<Object> values = js.getList("person.list.findAll { it.start < 5 }.name");

备选案文2:

List<Object> values1 = RestAssured.given().when().get("http://soapractice.mocklab.io/thing/4").then().extract()
.body().jsonPath().getList("person.list.findAll { it.start < 5 }.name");

备选案文3:

String def = RestAssured.given().when().get("http://soapractice.mocklab.io/thing/4").then().extract().body().asString();
JsonPath js1 = new JsonPath(def);
List<Object> values2 = js1.getList("person.list.findAll { it.start < 5 }.name");

官方文档非常有用-链接

相关问题