HI END


一种永不妥协,追求极致与完美的精神与态度。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

json lib 转换时间(转)

Posted on 2013-02-05 11:02  HI END  阅读(309)  评论(0编辑  收藏  举报

来源: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

 

Java代码 复制代码 收藏代码
  1. package com.tfyy.yx.util;   
  2.   
  3. import java.text.DateFormat;      
  4. import java.text.SimpleDateFormat;      
  5.      
  6. import java.util.Date;      
  7.         
  8. import net.sf.json.JsonConfig;      
  9. import net.sf.json.processors.JsonValueProcessor;      
  10.      
  11.      
  12. /**    
  13.  * @author Fly    
  14.  * @since 2010-08-02    
  15.  */     
  16. public class DateJsonValueProcessor implements JsonValueProcessor {      
  17.     public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";      
  18.     private DateFormat dateFormat;      
  19.      
  20.     /**    
  21.      * 构造方法.    
  22.      *    
  23.      * @param datePattern 日期格式    
  24.      */     
  25.     public DateJsonValueProcessor(String datePattern) {      
  26.         try {      
  27.             dateFormat = new SimpleDateFormat(datePattern);      
  28.         } catch (Exception ex) {      
  29.             dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);      
  30.         }      
  31.     }      
  32.      
  33.     public Object processArrayValue(Object value, JsonConfig jsonConfig) {      
  34.         return process(value);      
  35.     }      
  36.      
  37.     public Object processObjectValue(String key, Object value,      
  38.         JsonConfig jsonConfig) {      
  39.         return process(value);      
  40.     }      
  41.      
  42.     private Object process(Object value) {   
  43.         if (value==null) {   
  44.             return "";   
  45.         }else if (value instanceof Date) {   
  46.             return dateFormat.format((Date) value);   
  47.         }else {   
  48.             return value.toString();   
  49.         }   
  50.            
  51.     }      
  52. }