分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Fastjson对范型处理的bug

发布时间:2023-09-06 01:13责任编辑:胡小海关键词:jsjson

由于没有写博客的习惯,一直坚持不下来。

但是这次在重构中遇到这个bug忍不住要写下来。太有趣啦。

问题是这样的:

  为了方便app对返回的数据处理,空数组返回[],空对象返回null,

个人喜欢阿里,所以引入了FastJson。所有的返回值都封装成下面的Result对象返回。最后发现大部分时候data为空时返回的是null,偶尔却返回的[],对安卓端产生了影响。

@Getter
public class Result<T> implements Serializable {

???private static final long serialVersionUID = -5876274825677709598L;

???private int code;

???private T data;

???private String desc;
}
    看了看源码,其中
com.alibaba.fastjson.serializer.FieldSerializer.writeValue(
JSONSerializer serializer, Object propertyValue)
这个方法会把第一次的解析的Result中data属性以ArrayList类型存在中runtimeInfo中,
为了提高效率第二个booleanResult在解析时不会再重新加载data的类型,默认为第一次加载的数组类型,
最后期望返回null,但是返回的却是空数组。

 

Fastjson对范型处理的bug

原文地址:http://www.cnblogs.com/fastLearn/p/7595860.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved