用jackson在java中解包嵌套的json值最干净的方法是什么?

dvtswwa3  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(309)

我有一个类似这样的json(为了举例,字段的数量大大减少):

{
  "content": {
    "id": {"content": "1"},
    "param1": {"content": "A"},
    "param2": {"content": "55"}
  }
}

请记住,我无法控制它,我无法更改它,这是我从api得到的。
我为此创建了一个pojo类,如下所示:

public class PojoClass {
  private String id;
  private String param1;
  private String param2;

  // getters and setters
}

然后我用jackson解析json(我必须使用它,请不要建议使用gson或其他方法):

ObjectMapper om = new ObjectMapper();
JsonNode jsonNode = om.readTree(json).get("content");
PojoClass table = om.readValue(jsonNode.toString(), PojoClass.class);

这不起作用,因为id、param1和param2中有json,而不是直接的值。代码可以很好地处理json,如下所示:

{
  "content": {
    "id": "1",
    "param1": "A",
    "param2": "55"
  }
}

但不幸的是,我需要的值存储在“content”字段下。
解决这个问题最干净的方法是什么?
我知道我可以硬编码这个,然后在构造函数中一个接一个地将所有值提取到变量中,但是有很多这样的值,而不是像这个例子中的3个,显然这不是正确的方法。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题