如何使用 Jackson 读取 JSON 中的嵌套值
How to read a nested value in a JSON using Jackson
我有这样的 json 结构:
{
"version": 1.0,
"object": {
"a1": "a2",
"b1": "b2
},
"deploy": {
"applicationName": "app",
"namespace": "com.abc.xyz"
...
}
}
...
表示JSON继续。我想从这个 JSON 中检索 namespace
。我的代码如下所示:
JsonNode rootNode = new ObjectMapper().readTree(json);
var result = rootNode.at("/deploy/namespace");
但是,使用此代码,result
将始终 ""
我尝试了不同的路径,但我总是得到一个空 String
。
有帮助吗?
问题是at
return一个JsonNode,所以你需要访问它:
JsonNode rootNode = new ObjectMapper().readTree(json);
var result = rootNode.at("/deploy/namespace").asText();
否则,您也可以通过以下方式访问:
JsonNode rootNode = new ObjectMapper().readTree(json);
var result = rootNode.path("deploy").path("namespace").asText();
我有这样的 json 结构:
{
"version": 1.0,
"object": {
"a1": "a2",
"b1": "b2
},
"deploy": {
"applicationName": "app",
"namespace": "com.abc.xyz"
...
}
}
...
表示JSON继续。我想从这个 JSON 中检索 namespace
。我的代码如下所示:
JsonNode rootNode = new ObjectMapper().readTree(json);
var result = rootNode.at("/deploy/namespace");
但是,使用此代码,result
将始终 ""
我尝试了不同的路径,但我总是得到一个空 String
。
有帮助吗?
问题是at
return一个JsonNode,所以你需要访问它:
JsonNode rootNode = new ObjectMapper().readTree(json);
var result = rootNode.at("/deploy/namespace").asText();
否则,您也可以通过以下方式访问:
JsonNode rootNode = new ObjectMapper().readTree(json);
var result = rootNode.path("deploy").path("namespace").asText();