Fastjson對復雜對象進行序列化


一、什么是fastjson

fastjson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。

二、fastjson的優點

2.1 速度快

fastjson相對其他JSON庫的特點是快,從2011年fastjson發布1.1.x版本之后,其性能從未被其他Java實現的JSON庫超越。

2.2 使用廣泛

fastjson在阿里巴巴大規模使用,在數萬台服務器上部署,fastjson在業界被廣泛接受。在2012年被開源中國評選為最受歡迎的國產開源軟件之一。

2.3 測試完備

fastjson有非常多的testcase,在1.2.11版本中,testcase超過3321個。每次發布都會進行回歸測試,保證質量穩定。

2.4 使用簡單

fastjson的API十分簡潔。

String text = JSON.toJSONString(obj); //序列化
VO vo = JSON.parseobject("{...}", VO.class); //反序列化

2.5 功能完備
支持泛型,支持流處理超大文本,支持枚舉,支持序列化和反序列化擴展。

三、下載和使用

你可以在maven中央倉庫中直接下載:
Http://repo1.maven.org/maven2/com/alibaba/fastjson/
或者配置maven依賴
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>x.x.x</version>
</dependency>

四、項目中的使用

4.1、序列化

項目使用的是前后端分離架構,前面有提到,這里還是決定把對JSON的處理單獨拿出來說一下
SpringMVC的@ResponseBody雖然可以支持對象轉json,但顯得有些力不從心。當對象的結構復雜數據量變大就處理不了了
使用fastjson就可以快速高效的處理
 JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect);
Fastjson 循環引用
fastjson支持循環引用,並且是缺省打開的。
當序列化后的JSON傳輸到瀏覽器或者其他語言中,這些json解析器不支持循環引用,從而導致數據丟失。你可以關閉fastjson的循環引用支持。        關閉引用檢測,還能夠提升序列化時的性能。

全局配置關閉

 JSON.DEFAULT_GENERATE_FEATURE |= SerializerFeature.DisableCircularReferenceDetect.getMask();

4.2、序列化

VO vo = JSON.parseobject("{...}", VO.class); //反序列化
更多詳情可以在<a href="http://www.dba.cn/book/fastjson/">這里</a>看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM