JSON数据解析技术 ----GSON/FastJson

谈了这么久JSON解析,今天,他来了!

(一)首先咱们先谈谈,四大解析技术

以下四大解析技术的比较内容摘自https://blog.csdn.net/jiyueqianxue/article/details/83377181,予以各位参考

四个JSON类库分别为:Gson,FastJson,Jackson,Json-lib。

Gson(项目地址:https://github.com/google/gson)。Gson是目前功能最全的Json解析神器,Gson当初是为因应Google公司内部需求而由Google自行研发而来,但自从在2008年五月公开发布第一版后已被许多公司或用户应用。Gson的应用主要为toJson与fromJson两个转换函数,无依赖,不需要例外额外的jar,能够直接跑在JDK上。而在使用这种对象转换之前需先创建好对象的类型以及其成员才能成功的将JSON字符串成功转换成相对应的对象。类里面只要有get和set方法,Gson完全可以将复杂类型的json到bean或bean到json的转换,是JSON解析的神器

FastJson(项目地址:https://github.com/alibaba/fastjson)。Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。无依赖,不需要例外额外的jar,能够直接跑在JDK上。FastJson在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用。FastJson采用独创的算法,将parse的速度提升到极致,超过所有json库。

Jackson(项目地址:https://github.com/FasterXML/jackson)。相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。Jackson对于复杂类型的json转换bean会出现问题,一些集合Map,List的转换出现问题。Jackson对于复杂类型的bean转换Json,转换的json格式不是标准的Json格式。

Json-lib(项目地址:http://json-lib.sourceforge.net/index.html)。json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括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在功能和性能上面都不能满足现在互联网化的需求。

简单来用一张图表示的话

图片.png

从图中可以看到,目前具有相对优势的两大热门Json解析技术是:GSON和FastJson!!

(二)那么首先有请我们的神器Gson开讲:

首先附上Gson的jar包:
链接:https://pan.baidu.com/s/1iwdnR7xvSfJT5VeDOEU12w
提取码:guta

Gson框架技术的特点“谷歌出品,编码简单”
它的核心方法是fromJson()方法和toJson方法:

在Gson神器开讲之前分享给大家在使用时的两个小技巧
—>1)在idea中添加插件GsonFormat:File—>settings—>Plugins—>在MarketPlace中搜索GsonFormat,install然后重启idea
图片.png
图片.png

在使用时:alt+insert 选择GsonFormat将json语句输入其中即可自动添加json语句对应的映射类
—>2)在你创建json字符串的时候,有没有发现,如果没有转义符则无法创建json数据对应的字符串?
那么这里 alt+enter 选择弹出的 inject language视图,并选择Inject language or reference 里面选择json,然后ctrl + v即可达到添加转义符的效果:
图片.png

图片.png

图片.png

Gson开讲!

(1)将json对象转化为java对象

第一步:创建对应的映射类—巧妙利用GsonFormat插件
第二步:创建Gson 对象,同时创建映射类对象
第三步:调用fromJson方法,将json信息存储到映射类对象中

如下所示:图片.png

(2)将json数组转化为javaList
图片.png

(3)将java对象转化为json对象
图片.png

(4)将javaList转化为json数组
图片.png

以上内容就是Gson神器实现json《------》java之间的转化
下面附上我写的Gson的util包
链接:https://pan.baidu.com/s/1wDAcDN7lflcl5hpk7kTOog
提取码:dojh

(三)FastJson开讲

神器讲完,那么我们的“miao男也不能示弱”,当然它解析的快速程度是ms来算的

首先还是奉上FastJson的jar包:
链接:https://pan.baidu.com/s/1hLLVT0uIpo7C1LEE9sHRjg
提取码:9lbx

FastJson的特点:“阿里出品,然后就是快快快!”
核心方法parseObject和toJSONString
(一)将json数据转化为java对象
图片.png
(二)json数组转化为javaList
图片.png
(三)java对象转化为json对象
图片.png
(四)javalist转化为json数组
图片.png

以上内容就是fastJson“miao男”实现json《------》java之间的转化
下面附上我写的fastJson的util包:
链接:https://pan.baidu.com/s/1McQyBMAzzVuUKMMC9sh9lA
提取码:76qp

以上就是老王同学对Gson和FastJson的理解以及相关的应用,如果内容存在差错欢迎大家为我指出!!最近后端的同学是不是在忙着写接口,那老王在这里也祝大家没有bug,哈哈哈哈喜欢老王的内容就点个小心心哟!!!!

最后雍正大帝镇楼,毕竟专制八阿哥(bug)

图片.png

谈了这么久JSON解析,今天,他来了!

(一)首先咱们先谈谈,四大解析技术

以下四大解析技术的比较内容摘自https://blog.csdn.net/jiyueqianxue/article/details/83377181,予以各位参考

四个JSON类库分别为:Gson,FastJson,Jackson,Json-lib。

Gson(项目地址:https://github.com/google/gson)。Gson是目前功能最全的Json解析神器,Gson当初是为因应Google公司内部需求而由Google自行研发而来,但自从在2008年五月公开发布第一版后已被许多公司或用户应用。Gson的应用主要为toJson与fromJson两个转换函数,无依赖,不需要例外额外的jar,能够直接跑在JDK上。而在使用这种对象转换之前需先创建好对象的类型以及其成员才能成功的将JSON字符串成功转换成相对应的对象。类里面只要有get和set方法,Gson完全可以将复杂类型的json到bean或bean到json的转换,是JSON解析的神器

FastJson(项目地址:https://github.com/alibaba/fastjson)。Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。无依赖,不需要例外额外的jar,能够直接跑在JDK上。FastJson在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用。FastJson采用独创的算法,将parse的速度提升到极致,超过所有json库。

Jackson(项目地址:https://github.com/FasterXML/jackson)。相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。Jackson对于复杂类型的json转换bean会出现问题,一些集合Map,List的转换出现问题。Jackson对于复杂类型的bean转换Json,转换的json格式不是标准的Json格式。

Json-lib(项目地址:http://json-lib.sourceforge.net/index.html)。json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括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在功能和性能上面都不能满足现在互联网化的需求。

简单来用一张图表示的话

图片.png

从图中可以看到,目前具有相对优势的两大热门Json解析技术是:GSON和FastJson!!

(二)那么首先有请我们的神器Gson开讲:

首先附上Gson的jar包:
链接:https://pan.baidu.com/s/1iwdnR7xvSfJT5VeDOEU12w
提取码:guta

Gson框架技术的特点“谷歌出品,编码简单”
它的核心方法是fromJson()方法和toJson方法:

在Gson神器开讲之前分享给大家在使用时的两个小技巧
—>1)在idea中添加插件GsonFormat:File—>settings—>Plugins—>在MarketPlace中搜索GsonFormat,install然后重启idea
图片.png
图片.png

在使用时:alt+insert 选择GsonFormat将json语句输入其中即可自动添加json语句对应的映射类
—>2)在你创建json字符串的时候,有没有发现,如果没有转义符则无法创建json数据对应的字符串?
那么这里 alt+enter 选择弹出的 inject language视图,并选择Inject language or reference 里面选择json,然后ctrl + v即可达到添加转义符的效果:
图片.png

图片.png

图片.png

Gson开讲!

(1)将json对象转化为java对象

第一步:创建对应的映射类—巧妙利用GsonFormat插件
第二步:创建Gson 对象,同时创建映射类对象
第三步:调用fromJson方法,将json信息存储到映射类对象中

如下所示:图片.png

(2)将json数组转化为javaList
图片.png

(3)将java对象转化为json对象
图片.png

(4)将javaList转化为json数组
图片.png

以上内容就是Gson神器实现json《------》java之间的转化
下面附上我写的Gson的util包
链接:https://pan.baidu.com/s/1wDAcDN7lflcl5hpk7kTOog
提取码:dojh

(三)FastJson开讲

神器讲完,那么我们的“miao男也不能示弱”,当然它解析的快速程度是ms来算的

首先还是奉上FastJson的jar包:
链接:https://pan.baidu.com/s/1hLLVT0uIpo7C1LEE9sHRjg
提取码:9lbx

FastJson的特点:“阿里出品,然后就是快快快!”
核心方法parseObject和toJSONString
(一)将json数据转化为java对象
图片.png
(二)json数组转化为javaList
图片.png
(三)java对象转化为json对象
图片.png
(四)javalist转化为json数组
图片.png

以上内容就是fastJson“miao男”实现json《------》java之间的转化
下面附上我写的fastJson的util包:
链接:https://pan.baidu.com/s/1McQyBMAzzVuUKMMC9sh9lA
提取码:76qp

以上就是老王同学对Gson和FastJson的理解以及相关的应用,如果内容存在差错欢迎大家为我指出!!最近后端的同学是不是在忙着写接口,那老王在这里也祝大家没有bug,哈哈哈哈喜欢老王的内容就点个小心心哟!!!!

最后雍正大帝镇楼,毕竟专制八阿哥(bug)

图片.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值