springmvc 返回json格式中date的处理
在使用springmvc 的过程中,直接返回json对象的时候,如果包含date类型的对象,默认转换成json的时候是转换成long型的格式,不是我们常用的"yyyy-MM-dd HH:mm:ss"格式。
这时候需要做一个转换,比较喜欢下面的方式,直接在实体类中注解:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
这样,springmvc自动的会利用jackson把date类型转换成你需要的格式。
好了,下面是一个例子:
package com.xueyou.ssm.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
* Created by wuxueyou on 16/10/31.
*/
public class User {
private String name;
private int age;
private Date date;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
package com.xueyou.ssm.controller;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyou.ssm.model.User;
import com.xueyou.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* Created by wuxueyou on 16/10/11.
*/
@RestController
@RequestMapping(value = "/user",method = {RequestMethod.GET,RequestMethod.POST},produces = "application/json;charset=UTF-8")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/userlist")
public Map<String, Object> userList(String pageNum,String pageSize) {
Map<String,Object> params = new HashMap<String,Object>();
// params.put("pageNum",pageNum);
// params.put("pageSize",pageSize);
return userService.userList(params);
}
@RequestMapping(value = "/testjson")
public Map<String,Object> testjson(){
User u = new User();
u.setDate(new Date());
u.setAge(12);
u.setName("xxx");
Map<String,Object> resMap = new HashMap<>();
resMap.put("user",u);
return resMap;
}
}
测试一下返回:
后记:
发现转换后的时间不正确,因为没有指定时区:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
这样就ok了。