我需要反序列化JSON才能根据属性之一的类型进行分类。 我有以下JSON:
{
"type":"text","message": "Hello"
}
我有以下Enum
:
public enum MyEnumType {
TEXT("text"),DATE("date")
private final String type;
MyEnumType(String type) {
this.type = type;
}
}
并且我有Abstract
类,如下所示:
public abstract class MyClass {
public MyEnumType type;
}
我有一些扩展MyClass
public class TextMessage extends MyClass {
public String message;
}
public class DateMessage extends MyClass {
...
}
我需要编写一些类似于以下内容的代码:
ObjectMapper mapper = new ObjectMapper();
MyClass instance = mapper.readValue(json,MyClass.class);
并且必须获取实例取决于type
属性,如果type
为TEXT
则要反序列化为TextMessage
类,否则为DateMessage
类。
我该怎么做?你能给我一些想法或例子吗?