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