对象转Json时,Date类型格式化问题

时间:2023-03-09 07:51:40
对象转Json时,Date类型格式化问题

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