У меня есть базовый класс и производный класс, как показано нижеДжексон сериализатору не показывает jsonInfoType после сериализации
@JsonTypeInfo(use = JsonTypeInfo.Id.MINIMAL_CLASS,
include =JsonTypeInfo.As.PROPERTY, property = "_type")
@JsonSubTypes({ @JsonSubTypes.Type(value = BaseClass.class,
name = "BaseClass")})
public class BaseClass{
private String a;
}
public class DerivedClass extends BaseClass{
private String b;
}
Когда я сериализации Список BaseClass или Список DerivedClass Я не смог найти «_type» собственности в мой json. Но если я сериализую один экземпляр класса BaseClass или Derived, я могу увидеть свойство «_type».
Вот мой код Serializer.
public void serialize() throws Exception {
List<DerivedClass> bs = new ArrayList<DerivedClass>();
bs.add(new DerivedClass());
bs.add(new DerivedClass());
String json = new ObjectMapper().writeValueAsString(bs);
LOG.debug(json);
}
Я пробовал все решения при переполнении стека. Похоже, я делаю подобные вещи, но не уверен, почему я не мог получить тип. Я не хочу использовать mapper.writerWithType(). – ashy143
Этого недостаточно, чтобы воспроизвести вашу проблему: пожалуйста, включите код, который вы используете для сериализации. Существуют общие проблемы, такие как попытка сериализовать «Список» полиморфных значений, где Java Type Erasure вызывает проблемы. Но без кода невозможно сказать, в чем проблема. – StaxMan
@StaxMan Я добавил код для его сериализации. – ashy143