gpt4 book ai didi

java - Jackson 数据绑定(bind)未序列化 Collection 内的类型元数据

转载 作者:行者123 更新时间:2023-12-01 18:37:29 25 4
gpt4 key购买 nike

我有一个抽象类 Abst,有 3 个具体类扩展它。

@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'等等。但是,当我有 List<Abst>元数据没有被序列化。

我发现当 Jackson 单独序列化这些类时,它使用 TypeWrappedSerializer而当它序列化列表时,它使用 IndexListSerializer各个元素由 BeanSerializer 序列化而不是TypeWrappedSerializer 。上面有什么额外的注释或者我遗漏的东西吗?

最佳答案

我无法弄清楚为什么会发生这种情况,但我通过简单地创建一个自定义序列化程序来解决它,该序列化程序将在序列化期间添加元数据。一切都按原样进行。

关于java - Jackson 数据绑定(bind)未序列化 Collection 内的类型元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com