object是一个对象,该对象中有一个字段为Date类型
使用JSONObject obj = JSONObject.fromObject(object);将Object转成json时
Date类型字段会出现问题,会转化成一个Json内嵌的对象
如何在Date类型转Json时进行格式化呢?
1.自定义日期类型格式化转化类
/** * 实现Date类型转json时的格式化问题 */ public class JsonDateValueProcessor implements JsonValueProcessor { private String format ="yyyy-MM-dd"; public Object processArrayValue(Object value, JsonConfig config) { return process(value); } public Object processObjectValue(String key, Object value, JsonConfig config) { return process(value); } private Object process(Object value){ if(value instanceof Date){ SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK); return sdf.format(value); } return value == null ? "" : value.toString(); } }
2.在转化的时候给JSONObject设定jsonConfig
public static String peToJson(Pe pe){ JsonConfig jsonConfig = new JsonConfig(); //JsonConfig是net.sf.json.JsonConfig中的这个,为固定写法 jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor()); JSONObject obj = JSONObject.fromObject(pe,jsonConfig); return obj.toString();
}
通过设定jsonConfig,在json转化的时候,即可正确转换Date格式