SpringMVC返回JSON数据时日期格式化问题

試著忘記壹切 提交于 2020-05-04 08:01:02

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.     } 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!