我知道如何使用jsonStr.has("key")
检查在提供的jsonStr
中是否存在特定键。要检查多个键是否存在,我必须单独检查它们。Java中是否有任何方法,以便我可以有效检查键列表,如果其中的jsonStr
中不存在任何键?
将所有需要找到的密钥添加到列表/集合中。那么您可以使用
myKeyList.stream().allMatch(key->jsonStr.has(key))
查看JsonObject中是否存在所有密钥
基本上...编号
这些JsonObject实现中的大多数使用java.util.Map
,其中保留了JSON属性。主要是因为映射只有一种方法boolean containsKey(Object key);
,大多数如果不是全部实现都没有检查多个键的方法。
如果查看JsonObject
的实现,它使用LinkedTreeMap
存储所有元素:
private final LinkedTreeMap<String, JsonElement> members =
new LinkedTreeMap<String, JsonElement>();
它还具有keySet()
方法,该方法将返回Set<String>
,但实现使用与has()
函数完全相同的函数(find()
(。
因此,您有以下选项:
- 迭代您要检查
JSONObject
中存在的键列表 - 创建自己的求职者,它将创建供应序列化字符串中存在的键的
Set<String>
,您将能够有效地与通缉键的Set<String>
进行比较。