我想反序列化包含接口作为其属性之一的对象的JSON表示。对象的类看起来像这样:
class A {
B b;
}
Interface B {
//some content
}
Class C implements B {
}
Class D implements B {
}
我认为杰克逊是最好的。
最简单的方法是在解决方案here中提到的接口B上方添加一些注释。但这里的问题是我无权更改任何这些类或接口。所以我不能把注释放在A类。还有另一种方法可以达到同样的目的吗?
答案 0 :(得分:1)
快速脏解决方法:
您可以先对C类进行反序列化,然后将其设置为A类的属性
正式方法:
这是一种反序列化策略,您可能希望通过JSON的内容来确定它是C类还是D类,这是自定义反序列化