1

API 网址:https ://davids-restaurant.herokuapp.com/menu_items.json?category=C

我正在尝试从上面的其余 API 中检索 ID 913 的名称属性

请在下面找到我的代码

String URL = "https://davids-restaurant.herokuapp.com/menu_items.json?category=C";
Response res = RestAssured.get(URL);
JsonPath jsonPathEvaluator = res.jsonPath();
System.out.println(jsonPathEvaluator.get("$..menu_items[?(@id == 913)].description"));

错误信息

java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found '[' @ line 1, column 40.
                            $..menu_items[?(@id == 913)].description


                        ^

我试过这个可行,但我不想用索引查询,但我想用 ID 查询

System.out.println(jsonPathEvaluator.get("menu_items[1].description"));
4

1 回答 1

1

您可以使用 Groovy 过滤器来获得结果。看看这段代码。

io.restassured.response Response;
// response= Get the API response
List<String> namesList = from(response.asString()).getList("menu_items.findAll { it.id == 913 }.name");

在这里,我创建了一个列表,但您可以使用“item.find”找到单个项目。

于 2018-05-21T06:29:37.173 回答