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

Java 反序列化具有接口属性而不使用注释的JSON类,java,json,jackson,deserialization,Java,Json,Jackson,Deserialization,我想反序列化对象的JSON表示,该对象包含一个接口作为其属性之一。对象的类如下所示: class A { B b; } Interface B { //some content } Class C implements B { } Class D implements B { } 我认为杰克逊是最好的人选 最简单的方法是在解决方案中提到的接口B上放置一些注释。但这里的问题是我没有权限更改这些类或接口中的任何一个。所以我不能把注释放在类A中。有没有其他方法可以达到同样的效果 快

我想反序列化对象的JSON表示,该对象包含一个接口作为其属性之一。对象的类如下所示:

class A {
    B b;
}

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

}
我认为杰克逊是最好的人选

最简单的方法是在解决方案中提到的接口B上放置一些注释。但这里的问题是我没有权限更改这些类或接口中的任何一个。所以我不能把注释放在类A中。有没有其他方法可以达到同样的效果

快速脏处理方法:

您可以首先反序列化类C并将其设置为类a的属性

形式化方法:


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

您必须使用。@Boristespider是的,我考虑过编写一个与a完全相同的类,并将JSON反序列化到该对象。但是我必须手动设置A类对象的每个成员我不理解你的评论。将反序列化器添加到
ObjectMapper
并在其中添加自定义逻辑。如果不想更改类或接口,可以使用。