Im folgende Beispiel, ich habe eine primären Klasse - A und seine Unterklasse - B. Sowohl als Eigenschaft in der allgemeinen Klasse X verwendet werden kannJackson Serialisierung für Subklassen
public class A
{
@JsonProperty("primary_key")
public final String primaryKey;
@JsonCreator
A(@JsonProperty("primary_key") String primaryKey)
{
this.primaryKey = primaryKey;
}
}
public class B extends A
{
@JsonProperty("secondary_key")
public final String secondaryKey;
@JsonCreator
B(@JsonProperty("primary_key") String primaryKey, @JsonProperty("secondary_key") String secondaryKey)
{
super(primaryKey);
this.secondaryKey = secondaryKey;
}
}
public class X
{
@JsonProperty("keys")
public final A keys;
@JsonCreator
X(@JsonProperty("keys") A keys)
{
this.keys = keys;
}
}
Wie kann ich Jackson verwenden polymorphe Merkmal, um korrekt die unten angegebenen json in ihre jeweiligen Klassen deserialisieren:
JSON A:
{ "keys" :{
"primary_key" : "abc"
}
}
JSON B:
{ "keys" : {
"primary_key" : "abc",
"secondary_key" : "xyz"
}
}
Erwartetes Ergebnis: Kartenschlüssel Objekt der Klasse A für JSON A und Klasse B für JSON B.
Bitte legen nahe, auch alternative Vorschläge.
Ist nicht klar, was Ihr tatsächliches und erwartetes Ergebnis ist? –
@ YusufK. Ich möchte den ersten JSON zu Klasse A und den zweiten JSON zu Klasse B zuordnen. – bin
Ich denke, dass Sie Objekte von jedem gegebenen JSON erstellen möchten? –