Ich bin mit Jackson diese Datenstruktur, um zu versuchen und deserialisieren:Deserialisieren Unterobjekt mit Typ-ID in Top-Level-Objekt
{
"type": "foo", // or "bar", "baz", etc
"name": "number 1",
"params": {
// parameters specific to type 'foo'
}
}
Ich weiß, dass ich einen benutzerdefinierten Deserializer verwenden könnte, aber ich frage mich, ob Dies ist nur mit der @JsonType*
Annotationsfamilie möglich?
Im Moment habe ich meine Klassen in etwa so ein:
public class TopLevelObject {
String type;
String name;
AbstractParams params;
}
public class FooParams extends AbstractParams {
String one;
String two;
}
public class BarParams extends AbstractParams {
String three;
String four;
}
abstract public class AbstractParams {
}
I @JsonTypeInfo
auf der type
Eigenschaft verwenden kann, wenn ich die Eigenschaft in die AbstractParams
Klasse bewegen, aber ich kann nicht scheinen, um Das gleiche Ergebnis, während die type
Eigenschaft in der TopLevelObject
gehalten wird.
Irgendwelche Ideen?
Perfekt zu setzen haben, das ist genau das, was ich gesucht habe! Vielen Dank! –