java对象转json字符串日期格式_JAVA对象转换为JSON及日期格式转换处理

1.JSON日期格式转换

默认JSON对DATE类型会转换成一个多属性对象, 而不是单独的一个字符串, 在某些应用处理上不是很方便,  可以利用JsonValueProcessor来实现日期的转换.

默认格式:

"createDate":{"nanos":0

,"time":1371721834000

,"minutes":50

,"seconds":34

,"hours":17

,"month":5

,"year":113

,"timezoneOffset":-480,"day":4

,"date":20

},

转换后格式:

"createDate":"2013-06-20 17:50:34"

方法:

1.增加一个DateJsonValueProcessor类,如下:

importjava.text.SimpleDateFormat;importjava.util.Date;importnet.sf.json.JsonConfig;importnet.sf.json.processors.JsonValueProcessor;/*** JSON日期格式转换

**/

public class DateJsonValueProcessor implementsJsonValueProcessor

{private String format = "yyyy-MM-dd HH:mm:ss";publicDateJsonValueProcessor()

{

}publicDateJsonValueProcessor(String format)

{this.format =format;

}publicObject processArrayValue(Object value, JsonConfig jsonConfig)

{

String[] obj={};if (value instanceofDate[])

{

SimpleDateFormat sf= newSimpleDateFormat(format);

Date[] dates=(Date[]) value;

obj= newString[dates.length];for (int i = 0; i < dates.length; i++)

{

obj[i]=sf.format(dates[i]);

}

}returnobj;

}publicObject processObjectValue(String key, Object value, JsonConfig jsonConfig)

{if (value instanceofDate)

{

String str= newSimpleDateFormat(format).format((Date) value);returnstr;

}returnvalue;

}publicString getFormat()

{returnformat;

}public voidsetFormat(String format)

{this.format =format;

}

}

转换调用代码:

JsonConfig jsonConfig = newJsonConfig();

jsonConfig.registerJsonValueProcessor(java.util.Date.class, newDateJsonValueProcessor());

JSONObject jsonObj=JSONObject.fromObject(bean, jsonConfig);return jsonObj.toString();

其中  bean 指的是你需要转为json的java对象。

需要注意的是 代码中的 java.util.Date.class 要与对象中日期字段的类型一致,比如对象中的字段为 private Timestamp openAccountDate; 那么代码中 java.util.Date.class 应该改为 java.sql.Timestamp.class


版权声明:本文为weixin_39611072原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。