使用 JAVA 在 JSON 中有效地找到键值
Efficiently find a key-value in JSON with JAVA
我想查找给定键的 JSON 中是否存在键值对。此键值对可能不在根目录下。它有可能深深嵌入文档中。例如:
{"Persons":[
{"Person":
{"name":"john"}
}]
}
我想要 JsonDoc.has("name") 之类的东西,并且 return 是真的。
我在网上搜索并找到这个主题:Java: Json has key/field
两个答案(minimal-json 和 org.json)都有一些函数称为 has() 或 get(),但我查看了他们的源代码,他们都试图找到根下的键值。所以他们不符合我的需求。
我可以想到遍历整个json并尝试找到key-value,但似乎效率不高
如果您使用 Jackson,您可以在 JsonNode 上调用 findParent
,它将在节点或其后代中查找字段。
我想查找给定键的 JSON 中是否存在键值对。此键值对可能不在根目录下。它有可能深深嵌入文档中。例如:
{"Persons":[
{"Person":
{"name":"john"}
}]
}
我想要 JsonDoc.has("name") 之类的东西,并且 return 是真的。 我在网上搜索并找到这个主题:Java: Json has key/field
两个答案(minimal-json 和 org.json)都有一些函数称为 has() 或 get(),但我查看了他们的源代码,他们都试图找到根下的键值。所以他们不符合我的需求。
我可以想到遍历整个json并尝试找到key-value,但似乎效率不高
如果您使用 Jackson,您可以在 JsonNode 上调用 findParent
,它将在节点或其后代中查找字段。