各个Json技术比较

各个json技术的比较

(1) json-lib。 json-lib 最早也是应用广泛的JSON解析工具,但是它的缺点就是依赖很多的第三方包,如commons-beanutils.jar, commons-collections-3.2.jar, commons-lang-2.6-jar,commons-logging-1.1.1.jar, ezmorph-1.0.6.jar。
并且对于复杂类型的转换,json-lib 在将JSON转换成Bean时还有缺陷,如一个类里包含另一个类的List或者Map集合,json-lib 从JSON到Bean的转换就会出现问题。所以json-lib在功能和性能上面都不能满足现在互联网化的需求。

(2) Jackson。 开源的Jackson是Spring MVC内置的JSON转换工具。相比json-lib框架,Jackson所依赖的jar文件较少,简单易用并且性能也要相对高些。并且Jackson社区相对比较活跃,更新速度也比较快。但是Jackson对于复杂类型的JSON转换Bean会出现问题,一些集合Map、List 的转换出现问题;而Jackson对于复杂类型的Bean转换JSON,转换的JSON格式不是标准的JSON格式。

(3) Gson。Gson是目前功能最全的JSON解析神器。Gson当初是应Google公司内部需
求而由Google自行研发而来,自从2008年5月公开发布第一版后已被许多公司或用户应用。
Gson的应用主要为toJson 与fromJson两个转换函数,无依赖,不需要额外的jar文件,能够直接跑在JDK上。Gson可以完成将复杂类型的JSON到Bean或Bean到JSON的转换,是JSON解析的神器。其在功能上面无可挑剔,但是性能比FastJson稍差。

(4) FastJson。 FastJson 是一个Java语言编写的高性能的JSON处理器、由阿里巴巴公司开发。它的特点也是无依赖,不需要例外额外的jar文件,能够直接跑在JDK上。但是一FasJson在复杂类型的Bean转换JSON上会出现一些问题,可能会出现引用的类型,导致JSON转换出错,需要指定引用。Fastson 采用独创的算法,将parse的速度提升到极致,超过所有JSON库。

总结:通过以上4种JSON技术的比较,在项目选型的时候可以使用Google的Gson和阿里巴巴的FastJson 两种并行使用。若只是功能要求,没有性能要求,可以使用google的Gson;若有性能上面的要求可以使用Gson将Bean转换JSON确保数据的正确,使用FasUson将JSON转换Bean。

你可能感兴趣的:(其他)