Jackson 反序列化失败,出现JSON: Unrecognized field

问题:

这边在灰度发布的时候,其他未发布的机器出现过could not read JSON: Unrecognized field "type",这个报错,原因是有一个表新加了一个字段,并且灰度发布了一台机器,刚好有请求命中这台机器,会导致缓存中放入type这个字段,然后其他机器还没有发布,如果此时读到该缓存,会导致pojo中找不到这个type字段,redis在反序列化的时候会报错。

解决办法:
  1. 在类上添加 @JsonIgnoreProperties(ignoreUnknown = true)注解,这样会忽略类中不存在的字段,可以满足当前的需要,推荐。(后面每个类如果用到缓存都要加这个注解?)
  2. @JsonIgnoreProperties({ "internalId", "secretKey" }),指定的字段不会被序列化和反序列化,这样的话可能缓存取不到。
相关推荐
未若君雅裁11 小时前
多线程项目场景:CountDownLatch、Future、Semaphore
java
小科先生11 小时前
初学者安装java
java·开发语言
wyhwust11 小时前
如何让maven帮我们去下载合适的包
java·maven
ID_1800790547311 小时前
小红书笔记评论 API 接口深度解析(带全套 JSON 示例・技术实战版)
java·开发语言·windows
逍遥德11 小时前
Java编程高频的“技术点”-03:“下划线命名”参数,后端用“驼峰命名“接收
java·后端·springboot
jiayong2311 小时前
Maven clean 报错与 Maven Profile 机制总结
java·maven
qq_3660862211 小时前
测试接口传参数时,放在Header和Body中后台接收参数的区别
java·开发语言·前端
Jun62611 小时前
QT(8)-线程锁
java·开发语言
biubiubiu070611 小时前
SpringBoot 3.5.4 整合Quartz 定时任务
java·spring boot·spring
mifengxing11 小时前
LeetCode热题100——字母异位词分组
java·算法·leetcode·职场和发展·哈希表·hot100