JAVA 几款Json library的比较

摘要:
这下面这篇文章我们将要比较7种JavaJSON库,我们将测量做Java和JSON对象的相互转换,存取Json对象到文件的速度。

JSON是JavaScript object notation的缩写,是一种轻量级的描述数据的方式,与XML相比,它更小更快更易解析,此外,JSON还具有跨平台的优势。这下面这篇文章我们将要比较7种Java JSON库,我们将测量做Java和JSON对象的相互转换,存取Json对象到文件的速度。

Jackson Library

Jackson是一种“多目的的Java库,它的目标是更快,更轻,更易用”,此外他还提供了3种方法来处理JSON格式

1. 流式API: 能够增量解析/生成JSON

2. 树形模型:在内存中以树形结构来描述JSON文档

3. 数据绑定:JSON与POJO相互转换

Goole-Gson Library

第二个是Gson,它也支持JSON与Java对象的相互转换,并请求支持符合JSON格式的String直接转到JAVA对象而不需要放annotation。

GSON的优点是

1. 提供一个toJson()和fromJson()方法实现JAVA与JSON对象的互转,非常方便

2. 支持JAVA泛型

3. 支持任意复杂的对象

4. allow pre-existing unmodifiable objects to be converted to and from JSON

5. allow custom representation for objects

后面几个JSON库都是无名氏,在下面的图里你会看到他们的名字

基准

我们的测试机器配置为

2.5GHz I5 处理器,Win7 64位,4GB DDR3内存

下面这几幅图画出了集中json库的表现

JAVA 几款Json library的比较第1张

上图可以看出,序列化和反序列化小数据时,Gson都是最快的

JAVA 几款Json library的比较第2张

在序列化反序列化大一点的数据时,Gson的成绩倒是不出彩,Jackson表现更好

对于手机用户而言,jar包的大小也很重要,从下图可以看出,Gson jar包相当之小

JAVA 几款Json library的比较第3张

结论

对于小规模的数据,Gson表现更好,对于大规模数据Jackson更快

免责声明:文章转载自《JAVA 几款Json library的比较》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇七、ES故障排查WinForm DevExpress使用之ChartControl控件绘制图表二——进阶下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Gson的入门使用

Java对象和Json之间的互转,一般用的比较多的两个类库是Jackson和Gson,下面记录一下Gson的学习使用。 基础概念:  Serialization:序列化,使Java对象到Json字符串的过程。  Deserialization:反序列化,字符串转换成Java对象   使用Maven管理Gson,pom.xml导入gson的依赖 <...

GSON实现String和JSON转换

实现JSON字符串转换为JSON对象的方式很多。今天主要说一下最近在项目中用到的一个。觉得很方便。推介给大家 代码: import com.google.gson.Gson;import com.google.gson.JsonObject;public class JsonDemo { public static void main(String[] a...

Gson转换复杂对象报错【类型强转错误】

一、问题:   项目里遇到一个需求,规则文件下载后,导入本地解析。   采用的方案是:获取复杂对象,使用谷歌Gson转换为字串保存为文件下载,客户端读取文件,解析字串,反解对象   遇到的问题:传输的对象是一个嵌套的对象,反解的时候会报出类型强转异常 二、解决:   参考网址:【Gson对象转成Java复杂对象出错】  //规则生成 @RequestMa...

Java 实体类转json对象,属性名转key后首字母强制被转成小写的解决方案

1.情景展示 如上图所示,实体类转json,在Java开发中还是很常见的,问题在于:Java属性名称首字母是大写,要求转成json后首字母也必须是大写,如何实现?   2.原因分析 我们知道在Java规范中,实体类的属性名的命名规范需要遵循首字母小写的驼峰命名法,既是规范也是约束也是牢笼。这个时候一旦有人不按规范走,就会发生有趣的事情(一会再说)。 先...

Gson转换json数据为对象

可以通过Gson使用两种方法,将json字符串转换为对象,以下面该段报文做测试 { "id": 84041462, "lastName": "小华", "age":32, "balance":666255.32, "hobbyDesc": { "subject": "数学",...

gson 数据里面设置特殊字符不转换为十六进制

Gson gson = builder.create(); 如果用这个创建一个gson对象,如果字符串里面包好特殊字符“=”,就会转义为\u003d Gson gson = builder.disableHtmlEscaping().create(); 如果用这个创建一个gson对象,如果字符串里面包好特殊字符“=”,就不会进行转义,显示原始字符。...