我正在尝试反序列化一个相当复杂的 POJOs JSON,其中我需要定义一个特定的属性名称来类型解析,但未能找到这个相当简单的功能。
假设一个类:
class Example {
int id;
Map<String,Object> extras;
}
Jackson 正在将 POJO 正确序列化为 JSON,其中映射被序列化为键值映射,就像预期的那样:
{...
id:5,
extras:{object1:{...}, object2:{...}}
...}
现在我想告诉杰克逊按实际类型显式反序列化额外对象。所以我需要以某种方式告诉 Jackson 将“object1”映射到类型 A,将“object2”映射到类型 B。
这可能吗?谢谢。
有一个很好的指南如何处理它:http://www.cowtowncoder.com/blog/archives/2010/03/entry_372.html http://www.cowtowncoder.com/blog/archives/2010/03/entry_372.html
还有另一个教程:
http://programmerbruce.blogspot.de/2011/05/deserialize-json-with-jackson-into.html http://programmerbruce.blogspot.de/2011/05/deserialize-json-with-jackson-into.html
可以修改第二个教程中的第 6 个示例,解串器将具有类似于以下内容的循环:
Map<String, Class> types = ...// map of supported types
JsonToken token = jsonParser.nextToken();
if(token == JsonToken.FIELD_NAME){ // "object1" etc.
String name = jsonParser.getCurrentName();
Class type = types.get(name);
Object object = jsonParser.readValueAs(type);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)