У меня есть абстрактный класс 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'
et c. Однако, когда у меня есть List<Abst>
, метаданные не сериализуются.
Я обнаружил, что когда Джексон сериализует классы индивидуально, он использует TypeWrappedSerializer
, а когда он сортирует Список, он использует IndexListSerializer
с отдельными элементами, сериализуемыми BeanSerializer
вместо TypeWrappedSerializer
. Есть ли какая-нибудь дополнительная аннотация или что-то, чего мне не хватает выше?