此问题已在此处有答案:
Deserialize JSON with Jackson into Polymorphic Types - A Complete Example is giving me a compile error(7个回答)
2个月前关闭。
我尝试使用ObjectMapper反序列化JSON,但遇到了一些问题。也许我想要的是不可能与ObjectMapper,但我会要求无论如何一个好的方法。假设我有一个类,其中包含这样的对象列表:
public class SomeClass {
ArrayList<BaseClass> list;
}
public class BaseClass {
String id;
String type;
}
public class MyClass1 extends BaseClass{
}
public class MyClass2 extends BaseClass{
}
一个JSON是这样的:
{
"list": [
{
"id": "1",
"type": "MyClass1",
},
{
"id": "2",
"type": "MyClass2",
},
{
"id": "3",
"type": "MyClass1",
}
]
}
问题是如何告诉ObjectMapper创建并放入列表中的不是BaseClass
对象,而是MyClass1, MyClass2...
对象,这取决于“type”的值?这可能吗?
3条答案
按热度按时间csbfibhn1#
请参见Jackson多态类型处理注解
你应该能够做一些像
mspsb9vt2#
您可以简单地使用Jackson注解来实现这一点:
您可能还想查看
use
的其他值,例如CLASS
或MINIMAL_CLASS
。dgenwo3n3#
您可以尝试创建一个客户Map器,类似于: