Использование JSONAssert для проверки наличия элемента в массиве JSON - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть JSONObject, который похож на что-то вроде этого:

{
 "category":"abc"
 "staus":""open"
 "external":[
       {"name":"123", "type":"OTHER"},
       {"name":"678", "type":"ALPHA"},
       {"name":"890", "type":"DELTA"}
 ]
}

Если я хочу использовать JSONAssert, чтобы проверить, существует ли элемент {"name": "678"}, и я незнать порядок элементов и количество элементов во «внешнем» массиве, как мне поступить в Java?

Кажется, ArrayValueMatcher должен быть подходящим способом, но я просто не могу заставить его работать.

Пожалуйста, помогите

1 Ответ

0 голосов
/ 08 марта 2019

Вы можете использовать JsonPath для этого варианта использования:

JSONArray array = JsonPath.read(json, "$.external[?(@.name == '678')]");
Assertions.assertThat(array).hasSize(1);
...