Используйте свойство родительского объекта для определения подкласса при десериализации?JAVA

Программисты JAVA общаются здесь
Anonymous
Используйте свойство родительского объекта для определения подкласса при десериализации?

Сообщение Anonymous »

children: [
{
o kind: "t3"
data: { // ExampleNodeT3 class should be used for kind == t3
+ t3var1: "val1"
+ t3var2: true
}
}
{
o kind: "t4"
data: { // ExampleNodeT4 class should be used for kind == t4
+ t4var1: false
+ t4var2: 2346
}
}
] ... etc.

@JsonTypeInfo(use=Id.NAME, property="kind")
@JsonSubTypes({
@Type(value=ExampleNodeT3.class, name="t3"),
@Type(value=ExampleNodeT4.class, name="t4")})
public abstract class ExampleNode {
...
public void setData(ExampleNode data) {
this.data = data;
}
< /code>

При попытке десериализовать это с Джексоном, подсказки jsontypeInfo не сбои, когда создаются данные экзаменации, потому что свойство «добрый» связано с его родителем и не видимы. Я пробовал различные вариации заводских методов и аннотации Джексона, но, поскольку Джексон создает объект экзаменации и передает его саму setData (), я не вижу места для управления тем, какой класс объекта создается.

Подробнее здесь: https://stackoverflow.com/questions/457 ... erializing

Вернуться в «JAVA»