2
иерархия кажется, что этот вариант использования не поддерживается:Джексон десериализатор с несколькими уровнями полиморфного типа
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value=B1.class, name="b1"),
@JsonSubTypes.Type(value=B2.class, name="b2")
})
public abstract class A {
...
}
public class B1 extends A {
...
}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "subtype")
@JsonSubTypes({
@JsonSubTypes.Type(value=C1.class, name="c1"),
@JsonSubTypes.Type(value=C2.class, name="c2")
})
public abstract class B2 extends A {
...
}
public class C1 extends B2 {
...
}
public class C2 extends B2 {
...
}
То, что я хочу, чтобы решить эту одну: { «типа»: «b1»; ...} к классу B1 и {"type": "b2"; «подтип»: «c1»; ...} в класс C1 и {"type": "b2"; «подтип»: «c2»; ...} к классу C2. Любые предложения?
Что произойдет, если указать все подтипы в аннотации класса А? – Salil
Хорошо, посмотрите на конкретные классы: B1, C1 и C2. B1 имеет свойство «type» равно «b1» и не имеет свойства «подтипа». в то время как C1 и C2 имеют одно и то же свойство типа и другое свойство «подтипа». как я могу достичь этого, указав все подтипы в аннотациях класса А? – user3129233
Вам нужны оба типа и подтипа? type = c1 является достаточной информацией для демаршаллинга. – Salil