Android开发过程中会不可避免的调用服务端的接口来为自己提供数据支持。在这个工程中要频繁的和服务端接口进行数据交换,目前大多数接口提供的数据是Json类型的,接口需要的参数有时候也需要客户端以Json的格式传给服务器。这就需要我们进行数据的序列化和反序列化。Java对于处理JSON数据的序列化与反序列化目前常用的类库有Gson、FastJSON、Jackson、jettison以及json-lib。jettison和json-lib这两个门已经不更新了所有建议不用使用了。以下是我对FastJson、Gson和Jackson进行数据解析的比较,接口返回的数据总量在5M。
FastJson
Gradle引用地址:
compile 'com.alibaba:fastjson:1.1.60.android'
打印出来的时间是:
fastJson: time=14890196089
关于fastjson具体细节的学习在(https://github.com/alibaba/fastjson)
Gson
Gradle引用地址:
compile 'com.google.code.gson:gson:2.8.1'
打印出来的时间是:
Gson: time=6330989842
关于gson具体详细的学习在(https://github.com/google/gson)
Jackson
Jackson我还真没有找到gradle的引用地址,如有人知道烦请后台留言一下。我是直接下载的jar包,下载地址在(http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core)
打印出来的时间是:
Jackson: time=6957492341
总结
就以上结果看解析优势还是很明显的。Jackson我嫌它麻烦不怎么使用,经常项目中使用到的是fastjson和gson。对于数据量比较大时gson的解析速度拉fastjson几条街,对于数据量比较小的解析基本不相上下。fastjson自己说比gson快6倍,比jackson快3倍而且都有测试结果。还是非常有自信的,我的意见是具体项目具体使用。