【发布时间】:2015-03-11 10:14:46
【问题描述】:
我正在使用 Jackson 将一个大的 Json 字符串转换为各种类和子类。
我有一个对象列表,每个对象都包含一个节点对象、一个最后一个结果对象和一个子数组。 children 数组包含具有完全相同设置的对象列表。这持续了 3 或 4 层。
每一层的节点都属于不同的子类,它们都是从节点超类扩展而来的。 我用以下注释对超类节点进行了注释:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Type1ResponseDto.class, name = "Type1"),
@JsonSubTypes.Type(value = Type2ResponseDto.class, name = "Type2"),
@JsonSubTypes.Type(value = Type3ResponseDto.class, name = "Type3"),
@JsonSubTypes.Type(value = Type4ResponseDto.class, name = "Type4"),
@JsonSubTypes.Type(value = Type5ResponseDto.class, name = "Type5")
})
这似乎可行,因为所有子类都已映射。
但是,这会导致“type”属性设置为 null。
关于为什么会发生这种情况的任何想法?
【问题讨论】: