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

Spring MVC JSON自定義類型轉換

類型有很多,這裡只用日期為例說明。

在Spring MVC中存在兩大類的類型轉換,一類是Json,一個是Spring的Binder轉換。

Spring MVC+Spring3+Hibernate4開發環境搭建 http://www.linuxidc.com/Linux/2013-07/87119.htm

Spring MVC整合Freemarker基於注解方式 http://www.linuxidc.com/Linux/2013-02/79660.htm

基於注解的Spring MVC簡單介紹 http://www.linuxidc.com/Linux/2012-02/54896.htm

Spring MVC 框架搭建及詳解 http://www.linuxidc.com/Linux/2012-01/52740.htm

JSON:

使用Json轉換時,可以如下使用:

 public class Test {
   
    private Date createdate;

    @JsonSerialize(using = DateYMDHMSJsonSerializer.class)
    public Date getCreatedate() {
        return createdate;
    }

    @JsonDeserialize(using = DateYMDHMSJsonDeserializer.class)
    public void setCreatedate(Date createdate) {
        this.createdate = createdate;
    }
}

可以看到這裡使用了兩個Json轉換的注解:

第一個@JsonSerialize是轉換為字符串,主要是後台傳遞給前台時的日期格式;

第二個@JsonDeserialize是轉換字符串為日期類型,主要是從前台往後台傳遞時的日期。

兩個具體轉換類的實現:

/**
 * Description: 日期轉換 - "yyyy-MM-dd HH:mm:ss"
 * Author: liuzh
 * Update: liuzh(2014-04-17 10:59)
 */
public class DateYMDHMSJsonSerializer extends JsonSerializer<Date>{
    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
        try {
            jsonGenerator.writeString(DateUtil.formatDate(date, DateUtil.DATE_FORMAT_TIME_T));
        } catch (BusinessException e) {
            jsonGenerator.writeString(String.valueOf(date.getTime()));
        }
    }
}

 

/**
 * Description: 日期轉換 - "yyyy-MM-dd HH:mm:ss"
 * Author: liuzh
 * Update: liuzh(2014-04-17 10:59)
 */
public class DateYMDHMSJsonDeserializer extends JsonDeserializer<Date> {
    @Override
    public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
        try {
            return DateUtil.formatStringToDate(jp.getText(), DateUtil.DATE_FORMAT_TIME_T);
        } catch (BusinessException e) {
            return new Date(jp.getLongValue());
        }
    }
}

其中DateUtil是一個對日期格式轉換的工具類,使用的SimpleDateFormat進行轉換。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/102727p2.htm

Copyright © Linux教程網 All Rights Reserved