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

来源:互联网 发布:淘宝网武警 作训帽 编辑:程序博客网 时间:2024/05/19 15:40
json-lib 中 Date 类型的 转化为 json 

------ 
问题: 

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

------ 
解决方案: 

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

------ 
例子: 

* JsonValueProcessor 定义 
Java代码  收藏代码
  1. package eric.jpa.tool.json;  
  2. import java.text.SimpleDateFormat;  
  3. import java.util.Date;  
  4. import net.sf.json.JsonConfig;  
  5. import net.sf.json.processors.JsonValueProcessor;  
  6. /** 
  7.  * json-lib 对  Date 的处理 
  8.  * @author eric 
  9.  * @date 2010-10-7 上午03:42:58 
  10.  */  
  11. public class JsonLibDateProcessor implements JsonValueProcessor {  
  12.       /** 供调用的 static 实例 */  
  13.       public static final JsonLibDateProcessor instance = new JsonLibDateProcessor();  
  14.   
  15.       private String format = "yyyy-MM-dd'T'HH:mm:ss";  
  16.       private SimpleDateFormat sdf = new SimpleDateFormat(format);  
  17.   
  18.       public Object processObjectValue(String key, Object value, JsonConfig jc) {  
  19.             if (value == null) {  
  20.                   return "";  
  21.             } else if (value instanceof Date)  
  22.                   return sdf.format((Date) value);  
  23.             else {  
  24.                   return value.toString();  
  25.             }  
  26.       }  
  27.   
  28.       public Object processArrayValue(Object value, JsonConfig arg1) {  
  29.             return null;  
  30.       }  
  31. }  

* JsonConfig 指定 JsonValueProcessor 来处理 Date 
Java代码  收藏代码
  1. jsonConfig.registerJsonValueProcessor(Date.class, JsonLibDateProcessor.instance);  



------ 
原创粉丝点击