1 回答

TA贡献1805条经验 获得超10个赞
您需要的注释是:
@JsonTypeInfo
@JsonSubType
@JsonTypeName
一些解释:如果你有很多抽象类型的实现,Jackson 无法猜测你的 json 是哪种类型,你需要在 json 中添加一个类型名称,例如作为一个新属性(这是策略之一):
//tell to jackson where to find the type name
@JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = As.PROPERTY, property = "type")
// tell to jackson the implementations to scan
@JsonSubTypes({
@JsonSubTypes.Type(value = InputFieldDto.class, name = "input")
//, ...
})
public class AbstractFieldDto {
}
//tell to jackson what is the type name in json
@JsonTypeName("input")
public class InputFieldDto extends AbstractFieldDto {
private String fieldType = FieldType.INPUT.name();
private String text;
}
添加回答
举报