Spring MVC返回json字符串時數據格式化

jopen 10年前發布 | 48K 次閱讀 Spring MVC Web框架

    在運用Spring MVC框架開發時,可以直接在方法上添加注解 @ResponseBody 返回JSON數據,如果javabean的屬性中包含Date日期類型的數據,默認的轉換格式并不是我們想要的 yyyy-MM-dd 這樣的格式,那又如何實現這樣的格式轉化呢?

    其實SpringMVC的JSON轉換方法是利用了 Jackson 這個開源的第三方類庫,它提供了一些自定義格式的方法。只要我們繼承它的抽象類:public abstract class JsonSerializer<T>,并在相應的屬性方法上添加指定注解:@JsonSerialize 即可實現。

1、自定義一個格式化的類,實現如何對感興趣的字段進行格式化

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider;

/**

  • 日期類型格式化,格式化為:yyyy-MM-dd 格式 */ public class DateJsonSerializer extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException,

         JsonProcessingException {
     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
     String formattedDate = formatter.format(value);
     jgen.writeString(formattedDate);
    
    

    } }</pre>


    2、在要進行格式化的字段上標注 <span>@JsonSerialize,并指定要使用的格式化類對象
    @JsonSerialize(using=DateJsonSerializer.class)
    @Column(name="BIRTHDAY")
    public Date getBirthday() {
     return birthday;
    }


    3、ok搞定</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!