1. 程式人生 > >各個JSON技術的簡介和優劣

各個JSON技術的簡介和優劣

pan ns-3 json轉換 出錯 如果 算法 spa 出現問題 項目

各個JSON技術的簡介和優劣

(這裏只介紹各自優點和缺點,具體用法,請大家到網上去查找)

特別是fastJaso用法。這裏介紹的不錯:

https://www.cnblogs.com/sunp823/p/5601397.html
1.json-lib
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在功能和性能上面都不能滿足現在互聯網化的需求。
2.開源的Jackson
相比json-lib框架,Jackson所依賴的jar包較少,簡單易用並且性能也要相對高些。
而且Jackson社區相對比較活躍,更新速度也比較快。
Jackson對於復雜類型的json轉換bean會出現問題,一些集合Map,List的轉換出現問題。
Jackson對於復雜類型的bean轉換Json,轉換的json格式不是標準的Json格式
3.Google的Gson
Gson是目前功能最全的Json解析神器,Gson當初是為因應Google公司內部需求而由Google自行研發而來,
但自從在2008年五月公開發布第一版後已被許多公司或用戶應用。
Gson的應用主要為toJson與fromJson兩個轉換函數,無依賴,不需要例外額外的jar,能夠直接跑在JDK上。
而在使用這種對象轉換之前需先創建好對象的類型以及其成員才能成功的將JSON字符串成功轉換成相對應的對象。
類裏面只要有get和set方法,Gson完全可以將復雜類型的json到bean或bean到json的轉換,是JSON解析的神器。
Gson在功能上面無可挑剔,但是性能上面比FastJson有所差距。
4.阿裏巴巴的FastJson
Fastjson是一個Java語言編寫的高性能的JSON處理器,由阿裏巴巴公司開發。
無依賴,不需要例外額外的jar,能夠直接跑在JDK上。
FastJson在復雜類型的Bean轉換Json上會出現一些問題,可能會出現引用的類型,導致Json轉換出錯,需要制定引用。
FastJson采用獨創的算法,將parse的速度提升到極致,超過所有json庫。

綜上4種Json技術的比較,在項目選型的時候可以使用Google的Gson和阿裏巴巴的FastJson兩種並行使用,
如果只是功能要求,沒有性能要求,可以使用google的Gson,
如果有性能上面的要求可以使用Gson將bean轉換json確保數據的正確,使用FastJson將Json轉換Bean

各個JSON技術的簡介和優劣