json中支持java.sql,Date

我们在使用json的包返回数据的时候,如果返回的对象包含Date日期对象的时候,后台老报错误,老是不能转换,那么我们就需要自定义日期对象的显示格式了,其实也很简单总体思路是:

1.自己实现下JsonValueProcessor接口,写上自己的实现逻辑。代码如下:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**
 * 
 * @类功能说明:支持java.sql.Date显示
 * @类修改者:
 * @修改日期:
 * @修改说明:
 * @作者:流浪鱼
 * @创建时间:2013-7-17 上午11:24:11
 * @版本:V1.0
 */
public class DateJsonValueProcessor implements JsonValueProcessor{
	public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";  
	private DateFormat dateFormat;  

	/**   
     * 构造方法.   
     *   
     * @param datePattern 日期格式   
     */  
    public DateJsonValueProcessor(String datePattern) {  
        try {  
            dateFormat = new SimpleDateFormat(datePattern);  
        } catch (Exception ex) {  
            dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);  
        }  
    } 
    
	@Override
	public Object processArrayValue(Object value, JsonConfig jsonConfig) {
		return process(value); 
	}

	@Override
	public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
		return process(value);  
	}
	
	 private Object process(Object value) {  
	        if (value == null) {  
	            value = new Date();   
	        }  
	        return dateFormat.format((Date) value);  
	    }  

}

2.使用json转换时使用JsonConfig中进行注册,并在使用的时候自定自定义的config

JsonConfig config = new JsonConfig();
DateJsonValueProcessor dateProcessor = new DateJsonValueProcessor("yyyy-MM-dd");
		config.registerJsonValueProcessor(java.sql.Date.class, dateProcessor);
JSONArray array=JSONArray.fromObject(list,config);
        Struts2Utils.getResponse().setContentType("text/html;charset=gbk");
		Struts2Utils.getResponse().getWriter().write(array.toString());

 这样可以支持了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值