您的位置:首页 > 移动开发 > Objective-C

json转换时间类型的字符串为object-小心

2014-11-20 13:57 831 查看
solr中搜索tdate字段的数据:Sat June27 4:57:49 CST 2013

Map<String, Object> result= service.getResults(end-begin);
JSONObject json = JSONObject.fromObject(result);
System.out.println("json没有配置:"+ json.toString());
用json转化为:"ptime":{"date":27,"day":6,"hours":4,"minutes":57,"month":6,"seconds":49,"time":1374872269000,"timezoneOffset":-480,"year":113}

这样转化,则json能将时间格式化为字符串:"ptime":"2013-07-27"

JsonConfig cfg = new JsonConfig();
cfg.registerJsonValueProcessor(java.util.Date.class,new DateJsonValueProcessor("yyyy-MM-dd"));
JSONObject json = JSONObject.fromObject(result,cfg);
System.out.println("json配置:"+json.toString());

其中DateJsonValueProcessor如下:
package com.solr.util;

import java.text.SimpleDateFormat;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class DateJsonValueProcessor implements JsonValueProcessor
{

private String format;
public DateJsonValueProcessor(String format){
this.format = format;
}

public Object processArrayValue(Object value, JsonConfig jsonConfig)
{
return null;
}

public Object processObjectValue(String key, Object value, JsonConfig jsonConfig)
{
if(value == null)
{
return "";
}
if(value instanceof java.sql.Timestamp)
{
String str = new SimpleDateFormat(format).format((java.sql.Timestamp)value);
return str;
}
if (value instanceof java.util.Date)
{
String str = new SimpleDateFormat(format).format((java.util.Date) value);
return str;
}

return value.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: