对象转json时,Date类型字段处理。
前提介紹:
對象中含有Date類型的字段時,在用,JSONObject.fromObject(T);轉換為json對象時,其Date類型字段,沒有轉換為字符串類型。
解決方法:
項目中增加一個類:
import java.text.SimpleDateFormat;
import java.util.Date;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**?
?* JSON日期格式轉換
?*?
*/
public class DateJsonValueProcessor implements JsonValueProcessor
{
? ? private String format = "yyyy-MM-dd HH:mm:ss";
? ? public DateJsonValueProcessor()
? ? {
? ? }
? ? public DateJsonValueProcessor(String format)
? ? {
? ? ? ? this.format = format;
? ? }
? ? public Object processArrayValue(Object value, JsonConfig jsonConfig)
? ? {
? ? ? ? String[] obj = {};
? ? ? ? if (value instanceof Date[])
? ? ? ? {
? ? ? ? ? ? SimpleDateFormat sf = new SimpleDateFormat(format);
? ? ? ? ? ? Date[] dates = (Date[]) value;
? ? ? ? ? ? obj = new String[dates.length];
? ? ? ? ? ? for (int i = 0; i < dates.length; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? obj[i] = sf.format(dates[i]);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return obj;
? ? }
? ? public Object processObjectValue(String key, Object value, JsonConfig jsonConfig)
? ? {
? ? ? ? if (value instanceof Date)
? ? ? ? {
? ? ? ? ? ? String str = new SimpleDateFormat(format).format((Date) value);
? ? ? ? ? ? return str;
? ? ? ? }
? ? ? ? return value;
? ? }
? ? public String getFormat()
? ? {
? ? ? ? return format;
? ? }
? ? public void setFormat(String format)
? ? {
? ? ? ? this.format = format;
? ? }
}
對象轉化json代碼:
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());
net.sf.json.JSONObject jsonChannel = net.sf.json.JSONObject.fromObject(T, jsonConfig);
總結
以上是生活随笔為你收集整理的对象转json时,Date类型字段处理。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CI Weekly #11 | 微服务场
- 下一篇: 【转】构建微服务架构的最佳实践2/3