fastjson是阿里巴巴推出的一款很好的java開(kāi)源json解析器和生成器。其采用獨(dú)創(chuàng)的算法,將parse的速度提升到極致,超過(guò)目前所有json庫(kù),其中包括曾經(jīng)號(hào)稱(chēng)最快的jackson和google的二進(jìn)制協(xié)議protocol buf。同時(shí)fastjson功能強(qiáng)大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;無(wú)依賴(lài),能夠直接運(yùn)行在Java SE 5.0以上版本;支持Android;開(kāi)源 (Apache 2.0)等諸多特性也使得其在業(yè)內(nèi)備受好評(píng)。本站提供fastjson免費(fèi)下載。
使用方法
1、主要的使用入口
Fastjson API入口類(lèi)是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類(lèi)上的靜態(tài)方法直接完成,如下所示:
public static final Object parse(String text); // 把JSON文本parse為JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final T parseObject(String text, Class clazz); // 把JSON文本parse為JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文本
public static final Object toJSON(Object javaObject); 將JavaBean轉(zhuǎn)換為JSONObject或者JSONArray
2、有關(guān)類(lèi)庫(kù)的一些說(shuō)明
SerializeWriter:相當(dāng)于StringBuffer
JSONArray:相當(dāng)于List
JSONObject:相當(dāng)于Map
JSON反序列化沒(méi)有真正數(shù)組,本質(zhì)類(lèi)型都是List
3、fastjson 解析json字符串為四種類(lèi)型
①。 JavaBean
Person person = JSON.parseObject(jsonString, Person.class);
②。 List
List listPerson =JSON.parseArray(jsonString, Person.class);
③。 List
List listString = JSON.parseArray(jsonString, String.class);
④。 List》
List》 listMap = JSON.parseObject(jsonString, new TypeReference》》(){});
注意:fastjson反射機(jī)制比gson更準(zhǔn)確, id = 1001 通過(guò)fastjson反射仍是 id = 1001 , 而通過(guò)gson反射結(jié)果則為 id =1001.0
操作實(shí)例
關(guān)于fastjson的使用講起來(lái)可能比較抽象,小編為大家列舉一段簡(jiǎn)單的測(cè)試示例,希望大家喜歡:
測(cè)試環(huán)境工具:groovy1.8.6+jdk1.6.31
測(cè)試環(huán)境:GroovyConsole
首先將FastJson.jar放到groovy\lib目錄中,復(fù)制JAVA代碼如下:
import com.alibaba.fastjson.JSON
import com.alibaba.fastjson.JSONObject
class Test {
static main(args){
String text = ‘{“name”:“老張頭”, “age”:66}’
/** 將JSON字符串轉(zhuǎn)換為JSON對(duì)象 **/
JSONObject json = JSON.parseObject(text)
println json.name
/** 將JSON字符串轉(zhuǎn)換為JavaBean對(duì)象 **/
User user = JSON.parseObject(text, User.class)
println user
/** 將JavaBean對(duì)象轉(zhuǎn)換為JSON字符串 **/
String jsonObject = JSON.toJSONString(user);
println jsonObject
/** 將JavaBean對(duì)象轉(zhuǎn)換為JSON對(duì)象,報(bào)錯(cuò) **/
//JSONObject userJson = (JSONObject) JSON.toJSON(user)
//println userJson
}
}
private class User {
String name
int age
}
輸出結(jié)果如下:
老張頭
User@19dcf69
{“age”:66,“name”:“老張頭”}
優(yōu)點(diǎn)
Fastjson的目標(biāo)在服務(wù)器端和安卓客戶端提供最好的性能
提供簡(jiǎn)單的toJSONString()和parseObject()方法,將Java對(duì)象轉(zhuǎn)換成JSON,反之亦然。
允許將預(yù)先存在的不可修改的對(duì)象轉(zhuǎn)換為JSON,或從JSON中轉(zhuǎn)換。
對(duì)Java泛型的廣泛支持
允許自定義對(duì)象的表示方法
支持任意復(fù)雜的對(duì)象(具有深厚的繼承層次和廣泛使用的通用類(lèi)型)
功能特色
1.性能卓越
fastjson選用獨(dú)創(chuàng)性的優(yōu)化算法,將parse的速率提高到完美,超過(guò)全部json庫(kù),包含以前稱(chēng)為更快的jackson。而且還超過(guò)了google的二進(jìn)制協(xié)議書(shū)protocolbuf
2.支持規(guī)范
Fastjson徹底支持http://json.org的規(guī)范,也是官方網(wǎng)百度收錄的參照完成之一
3.功能齊全
支持各種各樣JDK類(lèi)型。包含基本上類(lèi)型.JavaBean.Collection.Map.Enum.泛型等
支持循環(huán)引用
4.無(wú)依靠
不用除外附加的jar,可以立即跑在JDK上
5.支持覆蓋面廣
fastjson支持JDK5.JDK6.Android.阿里云手機(jī)等自然環(huán)境
6.開(kāi)源系統(tǒng)
ApacheLicense2.0
代碼托管在github.org上,新項(xiàng)目詳細(xì)地址是https://github.com/AlibabaTech/fastjson
7.測(cè)試充足
fastjson有超過(guò)1500個(gè)testcase,每一次搭建都是會(huì)跑一遍,豐富多彩的測(cè)試情景確保了作用平穩(wěn)
以后上便是winwin7給大家分享的Fastjson,歡迎有需要的用戶前來(lái)獲取這款Fastjson!
上一篇:DnSpy反編譯工具