一、常见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的应用场景&