是否可以序列化/反序列化Map<String, Object>
,其中对象类型(映射值)将由其键确定。
{
"number":42,
"desc":"something really important",
"location":{
"x":9999,
"y":9999,
"wkid":9999
},
"shape":{
"type":"polyline",
"data":"dGhpcyBnZW9tZXRyeSBpcyBmYWtlIDpQ"
}
}
在这种特殊情况下,我知道desc
始终是string
,location
和shape
- 第三方类(我有序列化程序和反序列化程序)和其他值是盒装基元。
杰克逊可以做这样的事吗?可以通过使用MapSerializer / MapDeserializer完成这样的事情吗? (我找不到任何例子)
答案 0 :(得分:0)
是的,这是可能的。我建议你试试jsonschema2pojo。只需粘贴JSON
并选择来源类型JSON
。
答案 1 :(得分:0)
是的,可以做到。
拥有包含一对Map<String, Class>
的另一个结构,并将第一个结构(Map<String, Object>
)的键名链接到第二个结构。
例如
Map map = new HashMap<String, Object>();`
map.put("desc", "something really important");
Map deser = new HashMap<String, Class>();
deser.put("desc", StringDeserializer.class);
您还可以使用deser<String, String>
,其中值为类名,然后您只需按名称加载类http://www.tutorialspoint.com/java/lang/class_forname_loader.htm