Подтвердить что ты не робот

Доступ к элементам анонимного массива через 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, но все, что я пытаюсь получить, я получаю исключения. Моя проблема, похоже, напрямую связана с попыткой доступа к этому списку элементов.

4b9b3361

Ответ 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));