我需要知道是否可以将通用对象反序列化为它的定义类型,而无需附加属性或在注释中不提及类型。
例如:-
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")
在上面我必须提到
@class
属性,另一种方法是@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY)
@JsonSubTypes({
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
@JsonSubTypes.Type(value = Cat.class, name = "Cat")
})
在上面的示例中,我们定义了子类和自定义类型。
使用自定义反序列化器
StdDeserializer<T>
还有其他方法可以告诉我。
最佳答案
如果您可以找到一种从JSON数据确定对象子类型的方法,则可以编写一个自定义TypeId解析器来为您处理它。请参见Jackson Custom TypeId Resolver。