Java Jackson数据绑定未序列化集合内的类型元数据
我有一个抽象类Abs,有3个具体的类扩展它Java Jackson数据绑定未序列化集合内的类型元数据,java,jackson-databind,Java,Jackson Databind,我有一个抽象类Abs,有3个具体的类扩展它 @JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeInfo(use = Id.NAME) @JsonSubTypes({@JsonSubTypes.Type(value = First.class, name = FIRST), @JsonSubTypes.Type(value = Second.class,
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use = Id.NAME)
@JsonSubTypes({@JsonSubTypes.Type(value = First.class,
name = FIRST),
@JsonSubTypes.Type(value = Second.class,
name = SECOND),
@JsonSubTypes.Type(value = Third.class,
name = THIRD)})
public abstract class Abst {
public static final String FIRST = "first";
public static final String SECOND = "second";
public static final String THIRD = "third";
当我序列化First.class、Second.class或Third.class类型的实例时,元数据“@type”被正确序列化为@type:“First”
或@type:“Second”
等。但是,当我有列表时,元数据不会被序列化
我发现当jackson单独序列化类时,它使用的是TypeWappedSerializer
,而当它序列化列表时,它使用IndexListSerializer
,单个元素由BeanSerializer
而不是TypeWappedSerializer
序列化。上面是否有其他注释或我缺少的内容?我不知道为什么会发生这种情况,但我通过创建一个自定义序列化程序来解决它,该序列化程序将在序列化过程中添加元数据。一切按原样进行