java - 使用JAVA高效查找JSON中的键值

标签 java json dictionary hashmap jackson

我想查找给定键的 JSON 中是否存在键值对。该键值对可能不在根目录下。它可能深深地嵌入到文档中。例如:

{"Persons":[
  {"Person":
    {"name":"john"}
  }]
}

我想要像 JsonDoc.has("name") 这样的东西,并返回 true。 我在网上搜索并找到这个帖子:Java: Json has key/field

两个答案(minimal-json 和 org.json)都有一些称为 has() 或 get() 的函数,但我查看了它们的源代码,它们都试图在 root 下找到键值。所以它们不能满足我的需求。

我可以想到遍历整个json并尝试找到key-value,但似乎效率不高。

最佳答案

如果您使用 Jackson,您可以在 JsonNode 上调用 findParent,它将在节点或其后代中查找字段。

http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/JsonNode.html#findParent(java.lang.String)

关于java - 使用JAVA高效查找JSON中的键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329183/

相关文章:

Java 包 - 创建一个按钮并在需要时导入一个按钮

java - 如何在 firebase Android 中维护用户的存在状态

c# - 使用 Cookie 或其他方法保护 WFC/JSON 上的数据 session

javascript - 如何将数据发布到 JsonPlaceholder 假服务器?

Java:尝试使用 HTMLUnit 读取网页时出现 503 错误

java - 从不同的安全上下文运行 VBS 脚本

json - 如何使用 json.net 反序列化简单类型?

python - 从 python 中的对象返回多个实例

dictionary - 如何正确初始化一片 map

c# - 如何在 View 状态中存储从字典继承的类的实例?