如何解决如何在杰克逊反序列化期间忽略@class类型
我有两个项目 A 和 B, 项目A序列化了一个dto,并缓存到redis中,String之类的:
{"@class":"com.mike.xxxx.DtoDemo","id":88888,"name":"xxxxx"}
这个缓存也被 A 和 B 使用。 所以,项目 A 没有问题。
但项目 B 有问题: InvalidTypeIdException: 无法将类型 ID 'com.mike.xxxx.DtoDemo' 解析为 xxx 的子类型
然后我禁用 FAIL_ON_INVALID_SUBTYPE
ObjectMapper mapper = Jackson2ObjectMapperBuilder.json()
.featuresToDisable(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE)
...
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL,JsonTypeInfo.As.PROPERTY);
但是,在项目 B 中,总是得到空结果。 如何解决这个问题?
解决方法
在项目A中,保留此代码,不需要更改, 和项目B,注释这段代码:
// mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL,JsonTypeInfo.As.PROPERTY);
现在可以使用了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。