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;
}
添加回答
舉報