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();
}
}
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();
}
}
相关文章推荐
- JSONObject转换为JavaBean时,防止时间类型为系统默认时间
- 把对象转换成JSON格式的Object类型和String类型的字符串
- JSONObject.fromObject 转换JSON字符串Map时间处理的问题
- JSONObject转换为JavaBean时,防止时间类型为系统默认时间
- JSON 序列化和反序列化:将时间由"//Date(10000000000-0700)//" 格式转换成 "yyyy-MM-dd HH:mm:ss" 格式的字符串
- 把一个json字符串转换成对应的c#类型
- JSONObject.fromObject 转换JSON字符串Map的问题
- 将时间格式的字符串转换成日期类型浏览器兼容解决方案
- 字符串时间类型 转换
- 将Json字符串转换为ASP对象(parse json string to asp object) 转载
- JS 时间戳 时间字符串 时间类型相互转换
- 使用 google gson 转换Timestamp或Date类型为JSON字符串.
- js中如何将字符串转换成json类型
- 时间DateTime类型转换为字符串String格式方法汇总
- JsonObject 和其他类型数据的转换
- 将Json字符串转换为ASP对象(parse json string to asp object)
- Java类型转换成Json字符串的工具类小记
- JSONObject.fromObject 转换JSON字符串Map的问题
- 时间类型与字符串的转换
- C# 读取 timestamp 时间戳 值为byte[] 类型时,需要转换成 16进制的字符串 和 数据库中的时间戳值进行比对