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 的格式