fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,由阿里巴巴的工程師開發。git
主要特色:github
快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson)json
強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)maven
零依賴(沒有依賴其它任何類庫除了JDK)性能
maven引用:測試
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.23</version>
</dependency>this
github地址:.net
https://github.com/alibaba/fastjsonorm
測試代碼:普通轉換json對象,格式化日期,序列化,反序列化對象
/** * @ClassName: FastJson * @date 2017年1月4日 上午9:37:04 */ public class FastJson { public static void main(String[] args) { System.out.println("renwohua"); test1(); test2(); test3(); test4(); } /**對象的JSON序列化*/public static void test1(){ UserInfo userInfo=new UserInfo(); userInfo.setAge(25); userInfo.setName("Bill"); userInfo.setDate(new Date()); //將對象轉換爲JSON字符串 String strJson=JSON.toJSONString(userInfo); System.out.println("JSON="+strJson);} /**對象反序列化*/public static void test2(){ String json="{\"name\":\"chenggang\",\"age\":24,\"date\":1483494081855}"; //反序列化 UserInfo userInfo=JSON.parseObject(json,UserInfo.class); System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge()); //輸出毫秒值 System.out.println(JSON.toJSONString(userInfo.getDate(), SerializerFeature.WriteDateUseDateFormat));}/**泛型的反序列化*/public static void test3(){ String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}"; Map<String, UserInfo> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfo>>(){}); System.out.println(map.get("user")); }/**格式化日期**/public static void test4(){ Date date=new Date(); //輸出毫秒值 System.out.println(JSON.toJSONString(date)); //默認格式爲yyyy-MM-dd HH:mm:ss System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat)); //根據自定義格式輸出日期 System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat)); }}class UserInfo implements Serializable{ private String name; private int age; private Date date; public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setAge(int age){ this.age=age; } public int getAge(){ return age; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; }}