【问题标题】:Using Jackson deduction without modifying POJO classes在不修改 POJO 类的情况下使用杰克逊推论
【发布时间】:2021-04-21 15:48:26
【问题描述】:
Jackson 有一个很棒的功能,它允许在不更改 JSON 结构的情况下执行多态反序列化。 Here's 例子。但是,我不能使用它,因为它需要在生成的类中添加 @JsonTypeInfo(use=Id.DEDUCTION) 和 @JsonSubTypes({ ... }) 之类的注释。
我正在寻找在不更改 POJO 源代码的情况下实现相同行为的方法。例如,有没有办法通过配置对象映射器本身来做到这一点?
【问题讨论】:
标签:
java
json
spring
jackson
type-deduction
【解决方案1】:
ObjectMapper MixIns 似乎正是您想要的。
创建一个类存根,例如:
@JsonTypeInfo(use=Id.DEDUCTION)
@JsonSubTypes({ ... })
abstract class MyPojoMixIns {
}
然后用你的 ObjectMapper 注册它:
objectMapper.addMixIn(MyPojo.class, MyPojoMixIns.class);