在使用Java对象和json数据进行转化的过程,当Java对象中有Date对象是,Java对象转换成json,把date对象分开转化,即:年、月、日、时、分、秒,每个都当成一个对象给转化了,为了保持date对象的原有值,要进行一下处理即可:
新建一个Java类,如下:
使用案例,如下:
新建一个Java类,如下:
/**
* 禁止json转换时,时间转化为对象
* @author Administrator
*
*/
public class JsonDateValueProcessor implements JsonValueProcessor {
private String datePattern = AssContants.DATE_PATERN_MM;
public JsonDateValueProcessor() {
super();
}
public JsonDateValueProcessor(String format) {
super();
this.datePattern = format;
}
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value);
}
public Object processObjectValue(String key, Object value,
JsonConfig jsonConfig) {
return process(value);
}
private Object process(Object value) {
try {
if (value instanceof Date) {
SimpleDateFormat sdf = new SimpleDateFormat(datePattern, Locale.UK);
return sdf.format((Date) value);
}
return value == null ? "" : value.toString();
} catch (Exception e) {
return "";
}
}
public String getDatePattern() {
return datePattern;
}
public void setDatePattern(String pDatePattern) {
datePattern = pDatePattern;
}
}
使用案例,如下:
//JsonConfig是net.sf.json.JsonConfig中的,这个为固定写法
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());
JSONArray json = JSONArray.fromObject(pclist , jsonConfig);