Chciałbym wiedzieć, czy adnotacja @JsonTypeInfo
może być używana dla interfejsów. Mam zestaw klas, które powinny być serializowane i deserializowane.Polimorfizm w adnotacjach jackson: użycie @ JsonTypeInfo
Oto, co próbuję zrobić. Mam dwie klasy implementacji Sub1
, Sub2
implementujące MyInt
. Niektóre klasy modeli mają odwołanie do interfejsu dla typów implementacji. Chciałbym deserializowania obiektów na podstawie polimorfizmu
@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{
}
uzyskać następujące JsonMappingException
:
Nieoczekiwany token (END_OBJECT), oczekiwany nazwa_pola: Need JSON String zawierającą typ id
widziałeś to? http://jackson-users.ning.com/forum/topics/mapper-not-include-type-information-when-serializing-object-why?xg_source=activity czy masz listę bez typu wymienionego, jak omówiono w innym wątek? –
Myślę, że potrzebujesz pokazać nieco więcej kodu (jak robi się serializacja, deserializacja), jak również JSON jest produkowany/zużywany. – StaxMan