java - 具有多级多态类型层次结构的 Jackson 反序列化器

标签 java json polymorphism jackson deserialization

似乎不支持这个用例:

@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 {
    ...
}

我想要的是解决这个问题:{ "type": "b1"; ... } 到 B1 类,和 { "type": "b2"; “亚型”:“c1”; ... } 到 C1 类和 { "type": "b2"; “亚型”:“c2”; ... } 到 C2 类。 有什么建议吗?

最佳答案

对于那些需要答案的人,OP 得到了答案 here :

This is not supported

关于java - 具有多级多态类型层次结构的 Jackson 反序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20742213/

相关文章:

Java 存储文件中的行号和值

java - 将字符串文本提取到另一个字符串中

json - 导出为JSON时如何保留整数数据类型?

java - Jackson typeId 不包含在生成的 json 中

java - 使用和声明泛型 List<T>

Java抽象方法和接口(interface)

java - 验证 Json 请求架构

java - 使用 hibernate 存储/从 MySql 检索 JSON 数据时出现 UTF-8 问题

json - 奇怪的 JSON 解释(多态类型),如何解决?

c# - 为什么不根据参数类型调用最具体的方法