Элемент response.jsonPath() заключен в квадратные скобки. Как мне получить строковое значение? Будьте уверены

У меня есть тело ответа HTTP, которое выглядит так, когда я делаю запрос GET:

 [
  {
    "id": "1111",
    "type": "Sale",
    "name": "MyNameTest",
    "shortDescription": "Sale a"
  }
]

Когда я пытаюсь подтвердить результаты с помощью Rest Assured, значение имени всегда заключено в квадратные скобки [].

    final String returnedAttributeValue = response.jsonPath().getString("name");
    Assert.assertEquals(returnedAttributeValue, "MyNameTest");

Таким образом, тест не прошел с ожидаемым MyNameTest, но был [MyNameTest]

Может ли кто-нибудь сказать мне, как это решить?


person R111    schedule 21.07.2020    source источник


Ответы (1)


Вы получаете доступ к значениям в массиве, поэтому используйте name[n]

final String returnedAttributeValue = response.jsonPath().getString("name[0]");
Assert.assertEquals(returnedAttributeValue, "MyNameTest");
person Wilfred Clement    schedule 21.07.2020
comment
Разве это не должно быть $[0].name? - person chrylis -cautiouslyoptimistic-; 21.07.2020
comment
В синтаксисе пути Rest Assured JSON используется обозначение Groovy's GPath, и его не следует путать с синтаксисом Jayway's JsonPath. - person Wilfred Clement; 21.07.2020
comment
Ага. Неудачная коллизия имен. - person chrylis -cautiouslyoptimistic-; 21.07.2020