我有如下课程
class XYZ {
private String type;
private TypeSpecific typeSpecific;
public TypeSpecific getTypeSpecific() {
return typeSpecific;
}
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXTERNAL_PROPERTY,
property = "type"
)
@JsonSubTypes({
@JsonSubTypes.Type(value = ATypeSpecific.class, name = "a")
})
public void setTypeSpecific(TypeSpecific typeSpecific) {
this.typeSpecific = typeSpecific;
}
}
ATypeSpecific 类扩展了 TypeSpecific。
我想反序列化 JSON
{"type":"b"}
,其中 typeSpecific 将在对象中设置为 null。但我得到以下异常:
com.fasterxml.jackson.databind.JsonMappingException: Missing property 'typeSpecific' for external type id 'type'
如何将上述 JSON 反序列化为对象?
依赖版本:
杰克逊注释:2.7.0,杰克逊核心:2.7.4,杰克逊数据绑定:2.7.4
我尝试过最新的补丁,即 2.7.9 和最新版本 2.8.6。但它不起作用。请让我知道这是否可能。提前致谢。