是否有任何方法可以有效检查提供的JsonObject中是否缺少任何密钥



我知道如何使用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()(

因此,您有以下选项:

  1. 迭代您要检查JSONObject中存在的键列表
  2. 创建自己的求职者,它将创建供应序列化字符串中存在的键的Set<String>,您将能够有效地与通缉键的Set<String>进行比较。

相关内容

最新更新