我有以下json:
[
{
"dog":{
"noise":"bark",
"dogfood":"something"
}
},
{
"cat":{
"noise":"meow",
"catfood":"iams"
}
}
]
和以下型号:
public abstract class Animal {
}
public class Dog {
private String noise;
private String dogFood;
}
public class Cat {
private String noise;
private String catFood;
}
如何根据每个元素的根名是dog还是cat,通过继承反序列化json数组中的每个项目?
答案 0 :(得分:1)
有人在杰克逊的Github页面上寻求与您面临的问题相同的解决方案,请参见:https://github.com/FasterXML/jackson-databind/issues/1627
一个暂时的解决方法是自定义反序列化器,其中类中的字段应包含它是什么类型的类,以便可以对其进行反序列化。解决方法请参见此处:https://stackoverflow.com/a/50013090/6777695