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

来源:互联网 发布:怎样加入淘宝网 编辑:程序博客网 时间:2024/06/05 02:37

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


0 0
原创粉丝点击