反序列化具有接口属性的JSON类,而不使用注释

时间:2014-12-07 10:19:38

标签: java json jackson deserialization

我想反序列化包含接口作为其属性之一的对象的JSON表示。对象的类看起来像这样:

class A {
    B b;
}

Interface B {
   //some content
}
Class C implements B {
}
Class D implements B {

}

我认为杰克逊是最好的。

最简单的方法是在解决方案here中提到的接口B上方添加一些注释。但这里的问题是我无权更改任何这些类或接口。所以我不能把注释放在A类。还有另一种方法可以达到同样的目的吗?

1 个答案:

答案 0 :(得分:1)

快速脏解决方法:

您可以先对C类进行反序列化,然后将其设置为A类的属性

正式方法:

这是一种反序列化策略,您可能希望通过JSON的内容来确定它是C类还是D类,这是自定义反序列化