歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

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