歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 如何定制對象中特定字段的JSON輸出內容

如何定制對象中特定字段的JSON輸出內容

日期:2017/3/1 9:33:27   编辑:Linux編程

引言: 在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

--------------------------------------分割線 --------------------------------------

Copyright © Linux教程網 All Rights Reserved