我有一个这样的模型:
private String message;
private Integer errorCode;
private String data;
我从远程和消息中获取JSON字符串,errorCode变量获取正确的值。但是我不想反序列化到我的数据变量。我希望它像json字符串一样:
{"cat": "1.2.3.4", "ner": "80", "name": "pinta" }
之后,我将反序列化它以反对自己。我怎么能这样做?
PS:澄清问题:
我得到一个类似的Json字符串:
{“data”:{“cat”:“1.2.3.4”,“ner”:“80”,“name”:“pinta”},“message”:“m”,“errorCode”:12}
反序列化后,我的变量应具有以下值:
message => "m"
errorCode => 12
data => "{"cat": "1.2.3.4", "ner": "80", "name": "pinta" }"
答案 0 :(得分:10)
我宁愿建议你让数据绑定到一个中间对象;通常这是java.util.Map
或org.codehaus.jackson.JsonNode
(JSON树)。然后您可以以任何方式访问数据;包括使用ObjectMapper.convertValue(inputPojo, outputType)
)轻松转换为POJO。
答案 1 :(得分:8)
Jackson issue 596是为原始问题中描述的所需功能而创建的。如果您希望实施它,请投票支持。
目前可用的解决方案是实现自定义反序列化处理。
此外,How can I include raw JSON in an object using Jackson?主题涵盖了此主题。