带有Date数据的实体类在转为 JSON数据直接转会:
[{
"meaparam_id":1,"m_time":"2017-08",
"ts":{"nanos":0,"time":1501048842000,"minutes":0,"seconds":42,"hours":14,"month":6,"year":117,"timezoneOffset":-480,"day":3,"date":26},
"pk_id":15,"m_name":"ert","dr":0
}]
但我们希望
[{
"meaparam_id":1,"m_time":"2017-08","ts":"2017-07-26 14:00:42","pk_id":15,"m_name":"ert","dr":0
}]
可以使用下面方法:
public class JsonDateValueProcessor implements JsonValueProcessor {
private String format = "yyyy-MM-dd HH:mm:ss";
public Object processArrayValue(Object value, JsonConfig config) {
return process(value);
}
public Object processObjectValue(String arg0, Object value, JsonConfig config) {
return process(value);
}
private Object process(Object value){
//遇到类型为日期的,就自动转换成“yyyy-MM-dd HH:mm:ss”格式的字符串
if(value instanceof Date){
SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK);
return sdf.format(value);
}
return value == null ? "" : value.toString();
}
}
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
JSONArray json = JSONArray.fromObject(pageResult.getData(),jsonConfig);
System.out.println(json);