导读


由于项目需要,使用了Redis来作为缓存,但是由于使用@Cacheable注解,不知道什么原因导致出现JSON序列化的问题,下面简单记录下。

使用


问题原因

  1. {success: false,…}
  2. data: null
  3. msg: "Could not read JSON: For input string: "type"↵ at [Source: (byte[])"["java.util.ArrayList",[["com.deomo.entity.DemoVO",{"id":10942,"pKey":null,"dataVersion":null,"type":"type","id":"00001","belong":"330000022202"}]
  4. success: false
  5. total: 1076439

image.png

存到Redis显示正常,但是在使用的时候就出现JSON转换异常。

解决办法

首先将之前的缓存删除。

查看返回的VO类,两种解决方案

  • 在该异常属性添加@JsonIgnore 注解,让Redis忽略存储该字段
  • 检查VO类,看看是否在Getter或者Setter有误(类型转换之类的,我的就是该处的问题,原本数据库存的枚举类的下表,我在setter内将其转换了下,导致异常)

image.png

解决办法就是将该转换放到service实现层来处理。
image.png

参考