喜歡開源
對阿里的東西都很感興趣,在這個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 在每個屬性上只能用一個 ,寫多個就報錯