我知道如何使用jsonStr
检查提供的jsonStr.has("key")
中是否存在特定密钥。要检查多个密钥存在,我必须单独检查它们。 Java中是否有任何方法,以便我可以有效地检查密钥列表(如果在提供的jsonStr
中不存在任何密钥?
答案 0 :(得分:1)
将需要找到的所有密钥添加到列表/集中。然后你可以使用
myKeyList.stream().allMatch(key->jsonStr.has(key))
查看JSONObject中是否存在所有键
答案 1 :(得分:1)
基本上......不。
这些JsonObject实现中的大多数都使用java.util.Map
来保存JSON属性。主要是因为Map只有一个方法boolean containsKey(Object key);
,大多数如果不是所有的实现都没有检查多个键的方法。
答案 2 :(得分:1)
如果查看JsonObject
的实现,它会使用LinkedTreeMap
来存储所有元素:
private final LinkedTreeMap<String, JsonElement> members =
new LinkedTreeMap<String, JsonElement>();
它还有一个keySet()
方法,它会返回Set<String>
,但实现使用完全相同的函数(find()
)作为has()
功能。
所以你有以下选择:
JSONObject
Set<String>
个密钥,您可以将其与Set<String>
所需密钥进行有效比较。