gpt4 book ai didi

java - 如何达到其他级别深度的 json 值?

转载 作者:搜寻专家 更新时间:2023-10-31 20:27:09 24 4
gpt4 key购买 nike

假设我有这个 JSON 文件:

{
"level1" :{
"type": "x"
},
"level2" :{
"level3": {
"level3": {
"type" : "Y"
}
}
}
}

使用Jackson,如何获取type=Y值?

也可以通过gson.jar来获取

到目前为止我尝试的是:

ObjectMapper ob = new ObjectMapper();
String jsonContent = "...";
JsonNode root = ob.readTree(jsonContent)
root.path("level1"); //return results fine
root.path("level2").path("level3"); //not return any results
root.path("level2/level3"); //not return any results

最佳答案

您的 JSON 无效,因为您没有使用逗号 , 分隔 key:value 对,如 http://json.org 所示。

enter image description here

因此将您的 JSON 更改为

{
"level1" :{
"type": "x"
}, <-- add this comma
"level2" :{
"level3": {
"level3": {
"type" : "Y"
}
}
}
}

现在你应该可以使用

JsonNode root = new ObjectMapper().readTree(jsonContent);
root.path("level2")
.path("level3")
.path("level3");

使用 Gson 你的代码看起来像

JsonObject root = new JsonParser().parse(jsonContent).getAsJsonObject();
root.getAsJsonObject("level2")
.getAsJsonObject("level3")
.getAsJsonObject("level3");

关于java - 如何达到其他级别深度的 json 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com