Доступ к элементам анонимного массива через JsonPath в RestAssured
У меня есть анонимный массив в JSON, возвращенный из службы вроде:
[
{"foo":1, "bar":2 , "baz":3 },
{"foo":3, "bar":4 , "baz":5 }
]
Как я могу получить доступ к элементам bar
, например. в
expect().body("$[*].bar", hasItems(2,4))
Я попробовал несколько возможностей, которые я нашел здесь, а также на странице JsonPath от Stefan Gössner, но все, что я пытаюсь получить, я получаю исключения. Моя проблема, похоже, напрямую связана с попыткой доступа к этому списку элементов.
Ответы
Ответ 1
Учитывая, что у вас есть:
[
{"foo":1, "bar":2 , "baz":3 },
{"foo":3, "bar":4 , "baz":5 }
]
Вы можете сделать следующее в Restored:
then().body("bar",hasItems(2,4))
или
expect().body("bar",hasItems(2,4))
если вы используете устаревший API.
Ответ 2
Ответ Йохана правильный, только для полноты: альтернативный способ проверить элементы "bar" с уверенностью в отдыхе будет
expect().
body("[0].bar", equalTo(2)).
body("[1].bar", equalTo(4));