导读
由于项目需要,使用了Redis来作为缓存,但是由于使用@Cacheable注解,不知道什么原因导致出现JSON序列化的问题,下面简单记录下。
使用
问题原因
{success: false,…}
data: null
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"}]
success: false
total: 1076439
存到Redis显示正常,但是在使用的时候就出现JSON转换异常。
解决办法
首先将之前的缓存删除。
查看返回的VO类,两种解决方案
- 在该异常属性添加@JsonIgnore 注解,让Redis忽略存储该字段
- 检查VO类,看看是否在Getter或者Setter有误(类型转换之类的,我的就是该处的问题,原本数据库存的枚举类的下表,我在setter内将其转换了下,导致异常)
解决办法就是将该转换放到service实现层来处理。