springmvc中jackson转化date类型问题

来源:互联网 发布:淘宝飞鱼运动是正品么 编辑:程序博客网 时间:2024/05/07 00:31

今天做项目时,碰到一个问题;
通过mybatis在数据库中查询到的Date类型对象,在前台页面一直显示一串数字,也就是这个日期对象的时间戳。

后来发现原来是 springmvc整合jackson之后,将从数据库中获取到的Date类型的对象传给前台时,jackson会将date类型的对象转换成long,所以在前台看到的是一串数字。

解决办法:
在springmvc中自定义json序列化格式

首先,新建一个类 继承JsonSerializer这个抽象类,重写其序列化方法public class CustomDateSerializer extends JsonSerializer {    public void serialize(Object arg0, JsonGenerator arg1, SerializerProvider arg2)            throws IOException, JsonProcessingException {            Date value=(Date)arg0;            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");              String formattedDate = formatter.format(value);              arg1.writeString(formattedDate);     }}在需要进行序列化字段前加上注解  如:    @JsonSerialize(using = CustomDateSerializer.class)     private Date createTime;