Polimorfismo em anotações de jackson: uso de @JsonTypeInfo
Eu gostaria de saber se@JsonTypeInfo
anotação pode ser usada para interfaces. Eu tenho um conjunto de classes que devem ser serializadas e desserializadas.
Aqui está o que estou tentando fazer. Eu tenho duas classes de implementaçãoSub1
, Sub2
implementandoMyInt
. Algumas das classes do modelo possuem a referência de interface para os tipos de implementação. Eu gostaria de desserializar os objetos com base no polimorfismo
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=As.WRAPPER_OBJECT)
@JsonSubTypes({
@Type(name="sub1", value=Sub1.class),
@Type(name="sub2", value=Sub2.class)})
public interface MyInt{
}
@JsonTypeName("sub1")
public Sub1 implements MyInt{
}
@JsonTypeName("sub2")
public Sub2 implements MyInt{
}
Eu recebo o seguinteJsonMappingException
:
Token inesperado (END_OBJECT), FIELD_NAME esperado: precisa de JSON String que contenha o ID do tipo