解决fastjson反序列化时报错的问题
现在JAVA 对象如下:
@Data @NoArgsConstructor public class ResourceTreeDto implements Serializable, Comparable<ResourceTreeDto> { private Collection<ResourceTreeDto> children = new TreeSet<>(); }
该对象需要存进redis里面,序列化进去,没发现问题,但反序列化时,报如下错
com.alibaba.fastjson.JSONException: syntax error, expect {, actual TreeSet, pos 1718, fieldName menuTree, fastjson-version 1.2.39 at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:451) ~[fastjson-1.2.39.jar:na] at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseRest(JavaBeanDeserializer.java:1234) ~[fastjson-1.2.39.jar:na] at com.alibaba.fastjson.parser.deserializer.FastjsonASMDeserializer_4_ResourceTreeDto.deserialze(Unknown Source) ~[na:na] at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:267) ~[fastjson-1.2.39.jar:na] at com.alibaba.fastjson.parser.deserializer.DefaultFieldDeserializer.parseField(DefaultFieldDeserializer.java:80) ~[fastjson-1.2.39.jar:na] at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseField(JavaBeanDeserializer.java:1061) ~[fastjson-1.2.39.jar:na] at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:756) ~[fastjson-1.2.39.jar:na]
经查,原来是fastjson不支持泛型,修改原有的对象即可:
@Data @NoArgsConstructor public class ResourceTreeDto implements Serializable, Comparable<ResourceTreeDto> { private static final long serialVersionUID = /** * 子节点列表,去掉泛形。 */ private Collection children = new TreeSet();
去掉泛形后序列化一起正常。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
云栖大讲堂Java基础入门(二)—— 阿里专家与你分享:你必须注意的Java编程细节
摘要:本文主要关注如何在Java中操作一系列对象,介绍了Java的内建类型——数组,并介绍了一些操作数组的方法;随后,介绍了JDK中的集合类,一元对象的存储使用了Collection,详细介绍了Collection的分类;同时,本文展示了Map的多种实现策略;本文的重点内容是处理细节注意事项,来源于Java开发手册。 数十款阿里云产品限时折扣中,赶紧点击这里,领劵开始云上实践吧! 演讲嘉宾简介: 邢凯航(花名:弗止),Java高级开发工程师,香港大学计算机科学硕士,16年加入阿里巴巴,目前就职于研发效能事业部用户声音及代码智能化团队,负责代码中心后端开发。 本次直播视频精彩回顾,戳这里! PPT地址:https://yq.aliyun.com/download/2656 以下内容根据演讲嘉宾视频分享以及PPT整理而成。 本次的分享主要围绕以下四个方面: 一、数组 二、Collection 三、Map 四、处理细节注意事项 一、数组 数组作为java的内建类型,它的大小和类型是固定的,访问性能高效。数组的大小和类型一旦被指定,在运行期间就不能再修改;同时,Java中的数组支持边界值检查,...
- 下一篇
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/80177295 JavaScript案例之跑马灯左右无缝连接 效果图: 思路: 1.先做界面 1.1 制作一个大盒子,进行存放整个图片及按钮区域 1.2 制作两个按钮和中间区域盒子 1.3 中间区域盒子中使用无序列表进行排放图片,并且每个图片可以作为一个链接进行点击 2..CSS 2.1 清除全局的外边距和内边距 2.2 去除无序列表的黑点 2.3 去除存放图片区域的边界线 2.4 确定大盒子的宽高和位置【宽、高、上下空出50像素,水平居中、绝对定位】 2.5 左、按钮的样式【块级显示、宽、高、背景图片及平铺位置、绝对定位、上、左】 2.6 左按钮悬浮后样式【背景图片及平铺位置】 2.7 右、按钮的样式【块级显示、宽、高、背景图片及平铺位置、绝对定位、上、左】 2.8 右按钮悬浮后样式【背景图片及平铺位置】 2.9 中间盒子定位 2.10 中间盒子悬浮效果 3....
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6