Ich würde gerne wissen, ob @JsonTypeInfo
Annotation für Schnittstellen verwendet werden kann. Ich habe eine Reihe von Klassen, die serialisiert und deserialisiert werden sollten.Polymorphismus in Jackson Annotationen: @JsonTypeInfo Verwendung
Hier ist, was ich versuche zu tun. Ich habe zwei Implementierungsklassen Sub1
, Sub2
Implementierung MyInt
. Einige der Modellklassen haben die Schnittstellenreferenz für die Implementierungstypen. Ich möchte die Objekte deserialisieren basierend auf Polymorphismus
@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{
}
ich folgendes JsonMappingException
erhalten:
enthältunerwartetes Token (END_OBJECT), erwartet FIELD_NAME: need JSON String , die Typ-ID
Sie haben dies gesehen? http://jackson-users.ning.com/forum/topics/mapper-not-include-type-information-when-serializing-object-why?xg_source=activity Haben Sie eine Liste ohne Typ wie erwähnt in der anderen erwähnt Faden? –
Ich denke, Sie müssen etwas mehr Code zeigen (wie Serialisierung, Deserialisierung durchgeführt wird), sowie JSON produziert/verbraucht wird. – StaxMan