Использование JSONAssert для проверки наличия элемента в массиве JSON
У меня есть JSONObject, который похож на что-то вроде этого:
{
"category":"abc"
"staus":""open"
"external":[
{"name":"123", "type":"OTHER"},
{"name":"678", "type":"ALPHA"},
{"name":"890", "type":"DELTA"}
]
}
Если я хочу использовать JSONAssert, чтобы проверить, существует ли item {"name":"678"}, и я не знаю порядок элемента и количество элементов во "внешнем" массиве, как мне это сделать в Java?
Кажется, ArrayValueMatcher должен быть подходящим способом, но я просто не могу заставить его работать.
Пожалуйста помоги
2 ответа
Вот полный пример использования JsonAssert:
@Test
public void foo() throws Exception {
String jsonString = "{\n" +
" \"category\":\"abc\",\n" +
" \"staus\":\"open\",\n" +
" \"external\":[\n" +
" {\"name\":\"123\", \"type\":\"OTHER\"},\n" +
" {\"name\":\"678\", \"type\":\"ALPHA\"},\n" +
" {\"name\":\"890\", \"type\":\"DELTA\"}\n" +
" ]\n" +
"}";
JsonAssert.with(jsonString).assertThat("$.external[*].name", hasItem(equalTo("678")));
}