jackson 序列化多态处理

jackson json 的多态处理是一个比较方便的功能,但是实际上如果开启了多态处理,如果传递了具体的字类我们可能也会出现提示序列化异常,实际我们期望是正常的,但是因为jackson 默认的强check 造成有问题

参考多态配置

  • 一般玩法
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type",visible = true)
@Data
public class BaseMessage {
    private  String type;
    private  String action;
}
  • 问题

如果我们使用具体的字类进行处理,还是需要指定type字段,实际我们并不希望指定

  • 解决方法

配置如下信息

mapper.configure(MapperFeature.REQUIRE_TYPE_ID_FOR_SUBTYPES,false);

说明

对于实际类型也指定type 的确是一个不太方便的玩法,通过配置key 可以规避比问题

参考资料

https://github.com/FasterXML/jackson-databind/issues/3853

posted on 2025-12-30 08:00  荣锋亮  阅读(1)  评论(0)    收藏  举报

导航