侧边栏壁纸
  • 累计撰写 59 篇文章
  • 累计创建 0 个标签
  • 累计收到 17 条评论

调用redisTemplate.opsForValue().get()抛出异常:opsForValueCould not read JSON: Unrecognized field "enabled"

小熊博客
2021-11-08 / 0 评论 / 0 点赞 / 1,000 阅读 / 333 字
温馨提示:
本文最后更新于 2021-11-08,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

SpringBoot项目整合RedisTemplate设置序列化后运行异常

image.png

异常原因

返回的JSON里面包含了实体没有的字段导致反序列化失败。查阅相关源码后发现在序列化时,实体类中所有方法的返回值都会序列化,但是反序列化是根据实体类的set方法实现的,所以一旦实体类中存在没有set方法的get方法,或者是有返回值的非get方法,反序列化时就会抛出opsForValueCould not read JSON: Unrecognized field "enabled"异常。

解决方法

  1. 每个转换的实体变量都必须要有set和get方法,总之set和get必须同时存在
  2. 实体类使用注解@JsonIgnoreProperties(ignoreUnknown = true)修饰。
0

评论区