一、常见JSON开源类库比较
Java处理JSON数据有三个比较流行的开源类库有:阿里的FastJson、谷歌的Gson和开源社区的Jackson。
(1)Jackson是一个简单的、基于Java的JSON开源库。使用Jackson开源库,可以轻松地将Java POJO对象转换成JSON、XML格式字符串;同样也可以方便地将JSON、XML字符串转换成Java POJO对象。Jackson开源库的优点是:所依赖的jar包较少、简单易用、性能也还不错,另外Jackson社区相对比较活跃。Jackson开源库的缺点是:对于复杂POJO类型、复杂的集合Map、List的转换结果,不是标准的JSON格式,或者会出现一些问题。
(2)Google的Gson开源库是一个功能齐全的JSON解析库,起源于Google公司内部需求而由Google自行研发而来,在2008年5月公开发布第一版之后已被许多公司或用户应用。Gson可以完成复杂类型的POJO和JSON字符串的相互转换,转换的能力非常强。
(3)阿里巴巴的FastJson是一个高性能的JSON库。传闻说FastJson在复杂类型的POJO转换JSON时,可能会出现一些引用类型而导致JSON转换出错,需要进行引用的定制。顾名思义,从性能上说,FastJson库采用独创的算法,将JSON转成POJO的速度提升到极致,超过其他JSON开源库。
在实际开发中,目前主流的策略是:Google的Gson库和阿里的FastJson库两者结合使用。
- 在POJO序列化成-->JSON字符串的应用场景,使用Google的Gson库;
- 在JSON字符串-->反序列化成POJO的应用场景,使用阿里的FastJson库。
二、Demo
public class JsonUtil {
//谷歌GsonBuilder构造器
static GsonBuilder gb = new GsonBuilder();
Java高并发下JSON序列化库比较与传输原理

本文对比了Java中处理JSON的三大流行库:Jackson、Gson和FastJson,讨论了各自的优缺点及实际开发中的使用策略。同时,详细介绍了JSON在传输过程中的编码解码原理,涉及Netty的LengthFieldBasedFrameDecoder和LengthFieldPrepender等组件。
最低0.47元/天 解锁文章
365

被折叠的 条评论
为什么被折叠?



