如何使用 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();