2016-11-25 5 views
1

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

Antwort

Verwandte Themen