您的位置:首页 > Web前端 > JavaScript

json datatime convert

2015-11-19 18:14 525 查看
原文链接

1.JSON日期格式转换

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

默认格式:

"lastUpdate": {

"date": 29,

"day": 3,

"hours": 14,

"minutes": 46,

"month": 1,

"seconds": 41,

"time": 1330498001000,

"timezoneOffset": -480,

"year": 112

},

转换后格式:

"lastUpdate": "2012-02-29 14:46:41"

自定义一个日期处理器:

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;
}

}

转换调用代码:

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());
JSONObject jsonObj = JSONObject.fromObject(bean, jsonConfig);
return jsonObj.toString();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: