SpringMVC返回Json,自定义Json中Date类型格式

SpringMVC返回Json数据依赖jackson这个开源的第三方类库。

若不加任何说明情况下Date类型将以时间戳的形式转换为Json并返回。

jackson提供了一些自定义格式的方法。我们只需继承它的抽象类JsonSerializer<T> ,并在指定的属性方法上添加注解@JsonSerialize即可实现。

1.编写Date转换类(yyyy-MM-dd)

public class CustomDateSerializer extends JsonSerializer<Date>
{
    public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)throws IOException, JsonProcessingException
	{
	    SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd");
	    String formattedDate = format.format(date);
	    gen.writeString(formattedDate);
	}
}

 2.javabean中对应属性的get()方法添加注解

package com.easyui.model;

import java.util.Date;

import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.springframework.format.annotation.DateTimeFormat;

import com.easyui.utils.CustomDateSerializer;

public class User {
    private Integer id;

    private String username;

    private String password;

    private String realname;

    private String sex;

    private Date birthday;

    public int getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRealname() {
        return realname;
    }

    public void setRealname(String realname) {
        this.realname = realname;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @JsonSerialize(using=CustomDateSerializer.class)
    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

至此,就可以实现返回的JSON数据中日期格式自动转换为:yyyy-MM-dd 的格式

 

posted @ 2014-04-09 18:00  炫舞十风  阅读(3431)  评论(0编辑  收藏  举报