SpringMVC返回JSON數據時日期格式化問題


https://dannywei.iteye.com/blog/2022929

 

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

測試環境
SpringMVC 3.2.0
Jackson 1.7.1
解決方案

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

Java代碼   收藏代碼
  1.    
  2. import java.io.IOException;  
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Date;  
  5. import org.codehaus.jackson.JsonGenerator;  
  6. import org.codehaus.jackson.JsonProcessingException;  
  7. import org.codehaus.jackson.map.JsonSerializer;  
  8. import org.codehaus.jackson.map.SerializerProvider;  
  9.   
  10. /**  
  11.  * 自定義返回JSON 數據格中日期格式化處理  
  12.   
  13.   
  14. public class CustomDateSerializer extends JsonSerializer<Date> {  
  15.     @Override  
  16.     public void serialize(Date value, JsonGenerator jgen,  
  17.             SerializerProvider provider) throws IOException,  
  18.             JsonProcessingException {  
  19.         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  20.         String formattedDate = formatter.format(value);  
  21.         jgen.writeString(formattedDate);  
  22.     }  
  23.   
  24. }  



javabean對應屬性的方法添加注解:

Java代碼   收藏代碼
    1. @JsonSerialize(using = CustomDateSerializer.class)  
    2.     public Date getCreateDate() {  
    3.         return createDate;  
    4.     } 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM