json Date类型数据处理

我们经常使用 JSONArray array=JSONArray.fromObject() 将对象集合  List  转换成jsp所需的   JSONArray   形式

但是当处理到的  List  中包含  Date  类型的数据时,会出现错误。

此时,我们应该怎么解决这个问题。

JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans.

某些时候,我们需要对对象转为字符串的过程加以控制,最常见需求如数值格式化和日期格式化。

JSON lib提供了JsonConfig对象,该对象能够深刻影响Java对象转成json字符串的行为。

我们要控制JSON序列化过程中的Date对象的格式化,以及数值的格式化,JsonValueProcessor是最好的选择。

首先,我们应定义一个日期处理类:

import java.text.SimpleDateFormat;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/**
* json-lib 日期处理类
* @author Administrator
*
*/
public class DateJsonValueProcessor implements JsonValueProcessor{

private String format; 

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


public Object processArrayValue(Object value, JsonConfig jsonConfig) {
// TODO Auto-generated method stub
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(); 
}

}

然后在Controller中重新注册json配置对象:

JsonConfig jsonConfig=new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH-mm"));

最后在使用JSONArray的时候使用重载函数:

JSONArray array=JSONArray.fromObject(List,jsonConfig);

JSONObject jsonObjecg=JSONObject.from(Object,jsonConfig);    注意在转换的时候就要使用jsonConfig

这就是json处理date类型数据的一个解决方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值