Java 具有自定义条件的jackson多态反序列化

Java 具有自定义条件的jackson多态反序列化,java,json,spring,serialization,jackson,Java,Json,Spring,Serialization,Jackson,我需要知道是否可以将泛型对象反序列化为它的定义类型,而无需附加属性或在注释中提及该类型 例如: 在上面我必须提到@class属性,另一种方法是 @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY) @JsonSubTypes({ @JsonSubTypes.Type(value = Dog.class, name = "Dog"), @JsonSubTypes.Type(value = Ca

我需要知道是否可以将泛型对象反序列化为它的定义类型,而无需附加属性或在注释中提及该类型

例如:

在上面我必须提到
@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


有没有其他方法可以做到这一点请告诉我。

如果您能找到一种方法来从JSON数据确定对象子类型,您可以编写一个自定义TypeId解析器来为您处理它。看

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY)
@JsonSubTypes({
 @JsonSubTypes.Type(value = Dog.class, name = "Dog"),
 @JsonSubTypes.Type(value = Cat.class, name = "Cat")
})