FastJson反序列化踩坑记

框架 / 2021-03-16

实体对象是这样的:
image-1667905857035

然后redis采用fastjson序列化
image-1667905887055

redis保存之后看到的效果:
image-1667905923969

在从redis反序列取出结果后:发现怎么也拿不到Long类型的expireTime和loginTime的值
image-1667905940074

跟踪反序列化代码发现:
在构造javaBeanInfo的时候发现 javaBeanInfo的field 数组只包含了name和age,如下图
image-1667905959277

解决办法:
一是声明全参数构造函数:
image-1667905974579

二声明一个默认无参构造函数

image-1667905980753