如何使用 restAssured 在特殊条件下提取结果?

How do I extract results with special conditions using restAssured?

我有一个列表作为响应返回。我需要得到一个小于 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的“Adam”和“Harry”。

如何将满足特定条件的结果存储在数组中?

有很多方法可以做到这一点,这里有几个例子,它们很容易解释 - 否则请告诉我,我很乐意解释

选项 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");

官方文档很有用 - Link