fastjson常用操作

喜歡開源

對阿里的東西都很感興趣,在這個json 大行其道的年代,這次整理一下fastjson

下載地址:點擊打開鏈接

操作文檔和中文手冊,maven依賴,常用問題 都在這裏:點擊打開鏈接


下面要談的是我的實際操作和理解

1、對他的瞭解源於很久以前 我們的項目有一段關於alibaba.json的報錯,從此就用起來這個東西,感覺還不錯,效率挺高

接下來我只粘貼具體操作的代碼,其餘複製代碼詳見我的GitHub

生命一下參數列表中的group 、FastJsonGroup 均是實體bean

對象轉json(序列化)

  • 對象轉json 赤裸裸的
	String json2String = JSON.toJSONString(group);

  • 對象轉json帶上空值(如果值爲空,輸出null)
	String json2StringWithNull = JSON.toJSONString(group, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty);
  • 對象轉json格式化時間
        /**
	  *   帶時間格式化的輸出
	  *   識別的時間格式(來自官方文檔)
          *   ISO-8601日期格式
	  *   yyyy-MM-dd
          *   yyyy-MM-dd HH:mm:ss
	  *   yyyy-MM-dd HH:mm:ss.SSS
	  *   毫秒數字
	  *   毫秒數字字符串
	  *   .NET JSON日期格式
	  *   new Date(198293238)
	*/
	String json2StringWithDateFormat1 = JSON.toJSONStringWithDateFormat(group, "yyyy-MM-dd HH:mm:ss.SSS");//(2017-03-17 11:34:00.203)
	String json2StringWithDateFormat2 = JSON.toJSONString(group, SerializerFeature.UseISO8601DateFormat);//2017-03-17T11:38:46.407+08:00
            官方給了一個設置全局更改時間的方案:
            
	JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
	String json2StringWithDateFormat3 = JSON.toJSONString(group, SerializerFeature.WriteDateUseDateFormat);
		
         字符串轉對象(對象反序列化)
  • 字符串轉對象(赤裸裸)
	FastJsonGroup backGroup =JSON.parseObject(json2StringWithDateFormat3,FastJsonGroup.class);
  • 對生成的json字符串進行指定(比如要把實體屬性的id,轉化爲ID輸出爲json)
	/**
	 * 使用@JSONField配置 進行定製序列化
	 * 自定義返回在JSON傳中的字段樣式
         * 這樣更改不會影響序列化和反序列化的操作
	 */
	 @JSONField(name="ID")
	 private Long   id;
	 
	 @JSONField(name="Name")
	 private String name;
	 
	// 配置date序列化和反序列使用yyyyMMdd日期格式
	 @JSONField(format="yyyyMMdd")
	 private Date dateTime;
	 
	 //指定字段不序列化
	 @JSONField(serialize=false)
	 private String sex;
	 
	 //指定字段的順序
	 @JSONField(ordinal = 1)
	 private String order;
以上的@JSONField 在每個屬性上只能用一個 ,寫多個就報錯
在反序列化時,如果沒成功看一下 是不是你的json中 雙引號之間有空格,有的話就會失敗,這個折磨了我好久
大文件序列化和反序列化
我看了官方文檔,大體就是數組和對象兩種情況,例子是用對象轉化到指定文件的json串 和指定json傳轉化爲對象的形式,這裏就不貼我的代碼了
文檔中還提到了對指定jsons輸出前篩選的問題,通過類和函數的形式,個人認爲程序中判斷,直接調用轉fastjson轉化更好一點,突出這個工具的純粹性,
當然瞭如果4他的處理效率高於你的代碼,那建議用這個官方的例子

      




發佈了40 篇原創文章 · 獲贊 29 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章