JSON转换为JAVA对象及日期格式转换处理
2012-07-26 13:58
519 查看
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"
自定义一个日期处理器:
DateJsonValueProcessor是实现了一个JsonValueProcessor接口(两种方式)
[java] view
plaincopy
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;
}
}
或:
[java] view
plaincopy
package org.ymm.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();
}
}
转换调用代码:
public String queryEmpAll() throws IOException{
System.out.println("queryEmpAll!!!!!!!!!!!!!!!!!!!!!!!");
// PrintWriter out=ServletActionContext.getResponse().getWriter();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor());
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class, new JsonDateValueProcessor());
Map map=new HashMap();
map.put("total", 3);
map.put("data", ies.getAll());
JSONObject jn=JSONObject.fromObject(map,jsonConfig);
System.out.println(jn.toString());
// out.print(jn.toString());
return null;
}
默认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"
自定义一个日期处理器:
DateJsonValueProcessor是实现了一个JsonValueProcessor接口(两种方式)
[java] view
plaincopy
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;
}
}
或:
[java] view
plaincopy
package org.ymm.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();
}
}
转换调用代码:
public String queryEmpAll() throws IOException{
System.out.println("queryEmpAll!!!!!!!!!!!!!!!!!!!!!!!");
// PrintWriter out=ServletActionContext.getResponse().getWriter();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor());
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class, new JsonDateValueProcessor());
Map map=new HashMap();
map.put("total", 3);
map.put("data", ies.getAll());
JSONObject jn=JSONObject.fromObject(map,jsonConfig);
System.out.println(jn.toString());
// out.print(jn.toString());
return null;
}
相关文章推荐
- JSON转换为JAVA对象及日期格式转换处理
- net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- Jackson处理java对象,json,xml间转换
- Jersey中Json与Java对象转换处理
- 关于如何处理JSONObject.fromObject(Object obj)无法转换特殊日期(java.sql.Date,java.sql.Timestamp)格式的问题。
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- JAVA对象转换为JSON及日期格式转换处理
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- GSON 转换JSON为JAVA对象的日期坑
- 关于如何处理JSONObject.fromObject(Object obj)无法转换特殊日期(java.sql.Date,java.sql.Timestamp)格式的问题。
- java对象与json串的相互转换 将Bean中的Timestamp转换为json中的日期字符串
- json数据与JAVA数据的转换 jsonJavaBean.netApache 自己编写了一个工具类,处理页面提交json格式数据到后台,再进行处理成JAVA对象数据 1、DTO:Data T
- java对象和json对象之间互相转换(中)
- Java对象与JSON的转换
- Java中对象和json互相转换的工具类
- Google-gson, 将JSON 转换为 Java 对象或者将Java对象转换成JSON 的Java库,可以在Android上使用
- 使用jacksonjava对象转换成标准的json格式,便于与easyui...