2
我想要将包含接口的对象的JSON表示反序列化为其属性之一。对象的类看起来像这样:反序列化具有接口属性而不使用注释的JSON类
class A {
B b;
}
Interface B {
//some content
}
Class C implements B {
}
Class D implements B {
}
我认为杰克逊是最好的做到这一点。
最简单的方法是在解决方案here中提到的在接口B上面添加一些注释。但是这里的问题是我没有权限改变任何这些类或接口。所以我不能把注释放在A类中。还有另一种方法可以实现吗?
您必须使用[自定义反序列化器](http://www.baeldung.com/jackson-deserialization)。 – 2014-12-07 10:27:21
@BoristheSpider是的,我想过写一个类与A完全相同的类,并将json反序列化为该对象。但接下来我将不得不手动设置类A对象的每个成员 – Alex 2014-12-07 10:50:25
我不理解您的评论。在“ObjectMapper”中添加一个反序列化器,并在其中添加自定义逻辑。 – 2014-12-07 12:17:00