json-lib 中 Date 类型的 转化为 json

json-lib 中 Date 类型的 转化为 json

------
问题:

json-lib 转化 Date 时,是1个个子属性的转化,非常没必要,且没法在前台直接利用,

------
解决方案:

写1个 json-lib 的 JsonValueProcessor 的实现类,用于专门处理 Date 类型的属性,
在创建 JsonConfig 对象后,调用 registerJsonValueProcessor() 方法,指定所有 Date 类型用 上面的 JsonValueProcessor 的对象处理,

------
例子:

* JsonValueProcessor 定义

      package eric.jpa.tool.json;
      import java.text.SimpleDateFormat;
      import java.util.Date;
      import net.sf.json.JsonConfig;
      import net.sf.json.processors.JsonValueProcessor;
      /**
       * json-lib 对  Date 的处理
       * @author eric
       * @date 2010-10-7 上午03:42:58
       */
      public class JsonLibDateProcessor implements JsonValueProcessor {
            /** 供调用的 static 实例 */
            public static final JsonLibDateProcessor instance = new JsonLibDateProcessor();

            private String format = "yyyy-MM-dd'T'HH:mm:ss";
            private SimpleDateFormat sdf = new SimpleDateFormat(format);

            public Object processObjectValue(String key, Object value, JsonConfig jc) {
                  if (value == null) {
                        return "";
                  } else if (value instanceof Date)
                        return sdf.format((Date) value);
                  else {
                        return value.toString();
                  }
            }

            public Object processArrayValue(Object value, JsonConfig arg1) {
                  return null;
            }
      }

* JsonConfig 指定 JsonValueProcessor 来处理 Date
jsonConfig.registerJsonValueProcessor(Date.class, JsonLibDateProcessor.instance);

*

------

你可能感兴趣的:(java,json,.net,jpa)