我想知道 @JsonTypeInfo
注释是否可以用于接口。我有一组应该被序列化和反序列化的类。
这是我正在尝试做的。我有两个实现类 Sub1
, Sub2
实现 MyInt
。一些模型类具有实现类型的接口引用。我想反序列化基于多态性的对象
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=As.WRAPPER_OBJECT)
@JsonSubTypes({
@Type(name="sub1", value=Sub1.class),
@Type(name="sub2", value=Sub2.class)})
public interface MyInt{
}
@JsonTypeName("sub1")
public Sub1 implements MyInt{
}
@JsonTypeName("sub2")
public Sub2 implements MyInt{
}
我得到以下 JsonMappingException
:
意外的标记 (END_OBJECT),预期的 FIELD_NAME:需要包含类型 ID 的 JSON 字符串
原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议
@JsonSubTypes.Type
必须有这样的值和名称,在子类中,用
@JsonTypeName("dog")
说名字。值
dog
和cat
将在名为type
的属性中设置。