• 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.     } 
  • 相关阅读:
    java 通过Iterator输出Map
    java SortedSet接口swap方法
    java vector
    java Iterator双向迭代输出
    java 序列化和反序列化多个对象
    培训
    每天晚上

    又想起了

  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/10942416.html
Copyright © 2020-2023  润新知