Polymorphismus in Jackson-Annotationen: Verwendung von @JsonTypeInfo
Ich würde gerne wissen, ob@JsonTypeInfo
Anmerkungen können für Schnittstellen verwendet werden. Ich habe eine Reihe von Klassen, die serialisiert und deserialisiert werden sollten.
Folgendes versuche ich zu tun. Ich habe zwei ImplementierungsklassenSub1
, Sub2
implementierenMyInt
. Einige Modellklassen haben die Schnittstellenreferenz für die Implementierungstypen. Ich möchte die Objekte basierend auf Polymorphismus deserialisieren
@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 bekomme folgendesJsonMappingException
:
Unerwartetes Token (END_OBJECT), erwartetes FIELD_NAME: JSON-String mit Typ-ID erforderlich