引言: 在Web應用開發中,經常需要將對象轉化為JSON字符串的過程中,會有默認的輸出內容不符合要求的情況,比如DateTime。一般可以通過定制Serializer來實現定制化的JSON字符輸出。
1. 在對象中的getXXX方法中設置自定義的Serializer
public class MyObject {
private DateTime startDate;
@JsonSerialize(using = DateTimeJsonSerializer.class)
public DateTime getStartDate(){
return this.startDate;
}
}
說明:
1. @JsonSerializer定義了自定義的序列號類,
2. using中指定自定義的java轉化類
2. 實現自定義的Serializer
public class DateTimeJsonSerializer extends JsonSerializer<DateTime> {
private static DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH-mm-ss");
@Override
public void serialize(DateTime value, JsonGenerator generator,
SerializerProvider arg2) throws IOException,
JsonProcessingException {
generator.writeString(formatter.print(value));
}
}
在這個例子中,主要是針對DateTime進行JSON輸出類型信息的轉換。
DateTime在聲明類型的時候,做通用類T來輸入;在具體的方法中,做為value來傳入。 generator.writeString()來輸出JSON String信息。
3. 進行測試
在未進行自定義格式化輸出之前
在進行格式化輸出之後:
4. 總結
有了@JsonSerialize這個神器之後,就可以隨心所欲的輸出Json結果信息了。
--------------------------------------分割線 --------------------------------------
Struts中異步傳送XML和JSON類型的數據 http://www.linuxidc.com/Linux/2013-08/88247.htm
Linux下JSON庫的編譯及代碼測試 http://www.linuxidc.com/Linux/2013-03/81607.htm
jQuery 獲取JSON數據[$.getJSON方法] http://www.linuxidc.com/Linux/2013-03/81673.htm
用jQuery以及JSON包將表單數據轉為JSON字符串 http://www.linuxidc.com/Linux/2013-01/77560.htm
在C語言中解析JSON配置文件 http://www.linuxidc.com/Linux/2014-05/101822.htm
--------------------------------------分割線 --------------------------------------