我有一个接口,可以在其API中接收事件。 基本事件如下所示:
class Event<T extends Details> {
T details;
}
示例实现如下所示:
class UpdateEvent extends Event<UpdateDetails> {
@JsonProperty("updateDetails")
UpdateDetails details;
}
在JSON中,我想对以下内容进行序列化/反序列化:
{
"updateDetails": {...}
}
因此,我需要通过Json中的名称来确定详细信息字段的类型,并在反序列化时实例化Event类的相应子级。
我已经通过创建一个自定义反序列化程序来实现这一点,该程序可以检查details对象的确切名称,但是我不喜欢这种解决方案(由于JsonProperty批注,序列化可以直接使用)。杰克逊对此有解决方案吗?我无法使用标准的JsonTypeInfo注释来实现它(它总是将详细信息对象嵌套在JSON中的下一级,或者它将添加一个新的属性,不幸的是我无法做到)。