具有多级多态类型层次结构的Jsondeserializer

时间:2013-12-23 11:04:21

标签: 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”; “subtype”:“c1”; ...}到C1类和{“type”:“b2”; “subtype”:“c2”; ......}到C2类。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

  

不支持