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

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

javabean对应属性的方法添加注解:

    1. @JsonSerialize(using = CustomDateSerializer.class)
    2. public Date getCreateDate() {
    3. return createDate;
    4. }
上一篇:Redis单机配置多实例,实现主从同步


下一篇:九度oj 1031 xxx定律 2009年浙江大学计算机及软件工程研究生机试真题