Jackson Deserialize Variable as Json String

2022-09-02 01:41:25

我有一个这样的模型:

private String message;
private Integer errorCode;    
private String data;

例如,我从远程获得以下JSON:

{"data": {"cat": "1.2.3.4", "ner": "80", "name": "pinta" }, "message" : "m", "errorCode" : 12}

当我反序列化此 JSON 时,和 变量将获得正确的值。但是,我不想解释我的变量的内容。相反,我希望它是以下字符串:messageerrorCodedata

{"cat": "1.2.3.4", "ner": "80", "name": "pinta" }

在那之后,我会自己解释它。如何获得此值 ?data


答案 1

我宁愿建议你让数据绑定到一个中间对象;通常这是要么要么(JSON树)。然后,您可以以任何您想要的方式访问数据;包括使用 轻松转换为 POJO )。java.util.Maporg.codehaus.jackson.JsonNodeObjectMapper.convertValue(inputPojo, outputType)


答案 2

Jackson 问题 596 是为原始问题中描述的所需功能而创建的。如果你想实现它,请投票支持它。

当前可用的解决方案是实现自定义反序列化处理。

此外,如何使用 Jackson 在对象中包含原始 JSON?线程也介绍了此主题。