fastJSON介紹: javascript
阿里巴巴FastJson是一個Json處理工具包,包括「序列化」和「反序列化」兩部分。 java
它具有以下特徵:1、速度最快,測試代表,fastjson具備極快的性能,超越任其餘的Java Json parser,包括自稱最快的JackJson; sql
2、功能強大,徹底支持Java Bean、集合、Map、日期、Enum,支持範型,支 持泛型;無依賴,可以直接運行在Java SE 5.0以上版本;支持Android;開源 json
序列化就是把JavaBean對象轉化成JSON格式的文本。 數組
String obj="{name:'xx',age:13}"; 工具
String jsonStr=JSON.toJSONString(obj); 性能
標準的JSON是使用雙引號的,javascript支持使用單引號格式的json文本,fastjson也支持這個特性,打開SerializerFeature.UseSingleQuotes這個特性就能夠了了,例如: 測試
String obj="{name:'xx',age:13}"; spa
String jsonStr=JSON.toJSONString(obj,SerializerFeature.UseSingleQuotes); orm
fastjson序列化時能夠選擇的SerializerFeature有十幾個,你能夠按照本身的須要去選擇使用。
fastjson直接支持日期類型數據的格式化,包括java.util.Date、java.sql.Date、java.sql.Timestamp、java.sql.Time。例如:
Date date=new Date();
JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat);
輸出的結果爲:"2011-12-18 00:23:07"
也能夠指定格式:
JSON.toJSONStringWithDateFormat(date,"yyyy-MM-dd HH:mm:ss.SSS");
輸出的結果爲:"2011-12-18 00:23:07.429"
反序列化
對於字符串的過濾這裏推薦多個過濾
fastJSON中提供一個很好的Filter:SimplePropertyPreFilter,能夠對多個須要過濾的字段進行過濾。
例如:
List<Person> list = new ArrayList<Person>();
list.add(new Person("lisi", 19, 159785));
list.add(new Person("wangwu", 10, 113123213));
list.add(new Person("zhaoliu", 29, 1444785));
//這裏須要一個數組用來設置須要顯示的字段下面這三個屬性都須要顯示,
String[] s=new String[]{"age","name","num"};
SimplePropertyPreFilter f= new SimplePropertyPreFilter(Person.class,s);
String j=JSON.toJSONString(new Person("lisi", 19, 159785), f);
System.out.println(j);
輸出結果爲:{"age":19,"name":"lisi","num":159785}