Ниже мой ответ {"id": 123, "name": "text1"}, {"id": 456, "name": "text2"}]
Я хочу найти значение идентификатора, имя которого - text2
Ниже мой ответ {"id": 123, "name": "text1"}, {"id": 456, "name": "text2"}]
Я хочу найти значение идентификатора, имя которого - text2
Поскольку Rest Assured использует GPath Groovy, вы можете использовать следующее выражение:
String json = "[{ \"id\": 123, \"name\": \"text1\" }, { \"id\": 456, \"name\": \"text2\" }]";
JsonPath path = JsonPath.from(json);
System.out.println(path.get("find { it.name == 'text2' }.id"));
Приведенный выше код вернет 456
Он будет работать только в том случае, если JSON начинается с массива []
$..[?(@.name == 'text2')].id
, проверено с помощью валидатора JSONPath - person Wilfred Clement   schedule 12.04.2020json-path
. Это не сработает. Безопасное использованиеGroovy's GPath
- person Fenio   schedule 13.04.2020