@JSONField
作用:在字段和方法上
1.Field:@JSONField作用在Field時,name可以定義輸入key的名字,反序列化的時 值不會賦值到屬性上
2.作用在setter和getter方法上
/** * bean 轉json 時會把bean中的name轉換為project_name * */ @JSONField(name="project_name") public String getName() { return name; } /** * son 轉bean 時會把json中的project_name值賦值給name * */ @JSONField(name="project_name") public void setName(String name) { name= name; }
3.format :用在Date類型的字段來格式化時間格式
4.布爾類型:serialize和deserialize
在序列化的時候就不包含這個字段了。deserialize與之相反。但是有一點需要注意,當字段為final的時候注解放在字段上是不起作用的,這時候應該放在get或set方法上。
@JSONField(serialize=false) private String name
5.serialzeFeatures 屬性:fastjson默認的序列化規則是當字段的值為null的時候,是不會序列化這個字段
{"name":"LiSi","age":18,"address":null}
對象序列化下邊的類,結果是:{"name":"LiSi","age":18}
Student s = new Student (); s.setName("LiSi"); s.setAge(18); s.setAdderss(null);
6.SerializerFeature枚舉:
@JSONField(serialzeFeatures=SerializerFeature.WriteMapNullValue) private String address;
當value的值為null的時候,依然會把它的值序列化出來: {"name":"LiSi","age":18,"address":null}
當字段類型為int類型時,會序列化成 0,需要把類型改成Integer
