当前位置: 首页 > news >正文

com.alibaba.fastjson2 和com.alibaba.fastjson 区别

1,背景

最近发生了一件很奇怪的事:我们的服务向第三方发送请求参数时,第三方接收到的字段是首字母大写的 AppDtoList,但我们需要的是小写的 appDtoList。这套代码是从其他项目A原封不动复制过来的,我们仔细核对了项目A中 ApplyReq 的字段定义和业务代码,发现两者基本一模一样。然而,项目A传输过去的参数字段首字母是小写的 appDtoList,而我们这边传输的却是大写的 AppDtoList

部分代码

    @ApiModelProperty(value = "列表", required = true)private List<AppDto> appDtoList;
    public static void main(String[] args) {ApplyReq req = new ApplyReq ();List<AppDto> appDtoList= new ArrayList<>();req.setAppDtoList(appDtoList);System.out.println(JSON.toJSONString(req));}

打印结果:

{“AppDtoList”:[]}

2,原因

经过争论,发现是引入的JSON包不一样,我用的是
import com.alibaba.fastjson2.JSON;
项目A用的是import com.alibaba.fastjson.JSON;
这真是坑惨了,也涨教训了,如果不想换导入包,可以在字段上面加注解,也可以解决问题

    @ApiModelProperty(value = "列表", required = true)@JSONField(name = "appDtoList")private List<AppDto> appDtoList;

3,深入学习

既然发生了这个问题,那就深入了解一下这2个包的差异以及使用注意事项

来源:com.alibaba.fastjson2 和 com.alibaba.fastjson 是阿里巴巴开发的 JSON 处理库的不同版本

背景
fastjson(旧版):最早发布的 JSON 解析库,广泛应用于各种 Java 项目中。
fastjson2(新版):完全重构的版本,在性能、功能和兼容性上有显著提升,目标是替代旧版。

区别:
fastjson2:速度快,性能高,新增 @JSONType 注解

结语
在自己创建的新项目里面写一样的代码,就是复现不了上面的情况,版本不同代码也有所差异,难受,只有这个版本才能复现,但是我没时间再搞这个,先记录一笔

        <dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.23</version> </dependency>

相关文章:

  • 时源芯微|电源、地线的处理
  • 【C++】笔试强训 第一天
  • 工业机器人RTOS“微秒级战争”:实时Linux能否打破传统RTOS的垄断局面?
  • OceanBase 系统表查询与元数据查询完全指南
  • 3356. 零数组变换 II
  • 第八章 SPI组件配置
  • 网站服务器配置的核心要素是什么?
  • NV013NV024美光固态闪存NV028NV034
  • Docker架构详解
  • 从零开始学习QT——第二步
  • TCP与UDP协议详解
  • RK3588 hdmirx 调试(含v4l2工具,edid编辑)
  • 并发编程之线程安全lock
  • 739. 每日温度
  • 西交交互增强与细节引导的具身导航!OIKG:基于观察图交互与关键细节融合框架下的视觉语言导航
  • 在MPI中将全局通信子划分为节点本地通信子
  • 前端JavaScript-对象-同Python及C++对比
  • 结合人工智能的应用
  • 5.22本日总结
  • leetcode每日一题 -- 3362. 零数组变换 III
  • 廊坊盘古网站建设/爱站网长尾关键词挖掘查询工具
  • 动效做的好的网站/最近的新闻事件
  • 茂名免费做网站/2024最火的十大新闻
  • 建设银行的英语网站首页/最新发布的最新
  • 做vb程序的网站/2022最新版百度
  • 中国建设银行报网站/深圳谷歌seo公司