使用JSONAssert检查项目是否存在于JSON数组中

时间:2018-11-29 18:34:50

标签: java json jsonassert

我有一个类似这样的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 :(得分:1)

在该用例中,您可以使用JsonPath

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