1. 程式人生 > >fastjson常用示例

fastjson常用示例

1.簡單的Object轉Json

Student student = new Student(1,"zangsan",15,1);
System.out.println(JSON.toJSONString(student));

2.指定序列化欄位(只有id和name會被序列化)

Student student = new Student(1, "zangsan", 15, 1);
SimplePropertyPreFilter sppf = new SimplePropertyPreFilter(Student.class, "id", "name");
System.out.println(JSON.toJSONString(student, sppf));

3.SerializerFeature釋義

QuoteFieldNames———-輸出key時是否使用雙引號,預設為true 

WriteMapNullValue——–是否輸出值為null的欄位,預設為false 
WriteNullNumberAsZero—-數值欄位如果為null,輸出為0,而非null 
WriteNullListAsEmpty—–List欄位如果為null,輸出為[],而非null 
WriteNullStringAsEmpty—字元型別欄位如果為null,輸出為”“,而非null 
WriteNullBooleanAsFalse–Boolean欄位如果為null,輸出為false,而非null

4.使用SerializeFilter定製序列化:

通過SerializeFilter可以使用擴充套件程式設計的方式實現定製序列化。fastjson提供了多種SerializeFilter:
PropertyPreFilter: 根據PropertyName判斷是否序列化;
PropertyFilter: 根據PropertyName和PropertyValue來判斷是否序列化;
NameFilter: 修改Key,如果需要修改Key,process返回值則可;
ValueFilter: 修改Value;
BeforeFilter: 序列化時在最前新增內容;
AfterFilter: 序列化時在最後新增內容;
以上的SerializeFilter在JSON.toJSONString中可以使用。

5.日期格式化

1> 

@JSONField (format="yyyy-MM-dd HH:mm:ss")  
public Date birthday;  

2> 

JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
String str = JSON.toJSONString(user,SerializerFeature.WriteDateUseDateFormat);