Ich bin in der Lage, einfache Fälle von polymorphe Deserialisierung in Jackson auszuprobieren.jackson polymorphe Deserialisierung ohne Feld
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY,
property = "type", visible = true)
@JsonSubTypes({
@Type(value = A.class, name = "a"),
@Type(value = B.class, name = "b")
})
Class Base {
private String type;
...
}
Class A extends Base {
...
}
Class B extends Base {
...
}
Aber ich habe vor, wo ich die Kontrolle über den eingehenden Json nicht habe. Die json sieht aus wie
{ "type" : a, "params" : { .. fields for type A .. } }
{ "type" : b, "params" : { .. fields for type B .. } }
Das params
Bereich der entweder A oder B-Typ sein kann. Sowohl A
als auch B
erben von Base
, aber die Spalte, die die type
entscheidet, ist außerhalb des params
Feldes.
Wie kann ich konfigurieren jackson außerhalb der Klasse in einem Feld suchen und dann den tatsächlichen Typ