来源:http://yxgyh.iteye.com/blog/808223
Java对象中存在Date类型的对象无法进行解析,但是我又必须使用Date类型,还好json-lib提供了可扩展的接口JsonValueProcessor接口来让我们自定义的处理Json返回值的接口,看具体的对日期返回值的操作扩展:(为缩小篇幅,注释没那么规范),另外需要依赖的第三方包有如下:
commons-beanutils.jar commons-collections-3.1.jar commons-lang-2.1.jar commons-logging-1.1.1.jar ezmorph-1.0.3.jar json-lib-2.3-jdk15.jar |
- package com.tfyy.yx.util;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import net.sf.json.JsonConfig;
- import net.sf.json.processors.JsonValueProcessor;
- /**
- * @author Fly
- * @since 2010-08-02
- */
- public class DateJsonValueProcessor implements JsonValueProcessor {
- public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
- private DateFormat dateFormat;
- /**
- * 构造方法.
- *
- * @param datePattern 日期格式
- */
- public DateJsonValueProcessor(String datePattern) {
- try {
- dateFormat = new SimpleDateFormat(datePattern);
- } catch (Exception ex) {
- dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
- }
- }
- public Object processArrayValue(Object value, JsonConfig jsonConfig) {
- return process(value);
- }
- public Object processObjectValue(String key, Object value,
- JsonConfig jsonConfig) {
- return process(value);
- }
- private Object process(Object value) {
- if (value==null) {
- return "";
- }else if (value instanceof Date) {
- return dateFormat.format((Date) value);
- }else {
- return value.toString();
- }
- }
- }