Json-lib 如何转换日期格式的字段 json

json : {password:"234234",userName:"zhangbo",birth:"2008-01-03"}

 

javabean:

   1.  public class JSONTestBean {  
   2.   
   3.     private String userName;  
   4.   
   5.     private String password;  
   6.     private java.util.Date birth;  
   7.     //getter and setter  
   8. }  

 用json-lib如何将 json 转成 JSONTestBean?

json-lib-2.2可以为对应的class注册解析类,记住一定要2.2,2.1有同步问题。切记切记。
写一个DateJsonValueProcessor.java

   1.  package anni.core.web.json;  
   2.   
   3. import java.text.DateFormat;  
   4. import java.text.SimpleDateFormat;  
   5.   
   6. import java.util.Date;  
   7.   
   8. import net.sf.json.JSONObject;  
   9. import net.sf.json.JsonConfig;  
  10. import net.sf.json.processors.JsonValueProcessor;  
  11.   
  12.   
  13. /** 
  14.  * @author Lingo 
  15.  * @since 2007-08-02 
  16.  */  
  17. public class DateJsonValueProcessor implements JsonValueProcessor {  
  18.     public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";  
  19.     private DateFormat dateFormat;  
  20.   
  21.     /** 
  22.      * 构造方法. 
  23.      * 
  24.      * @param datePattern 日期格式 
  25.      */  
  26.     public DateJsonValueProcessor(String datePattern) {  
  27.         try {  
  28.             dateFormat = new SimpleDateFormat(datePattern);  
  29.         } catch (Exception ex) {  
  30.             dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);  
  31.         }  
  32.     }  
  33.   
  34.     public Object processArrayValue(Object value, JsonConfig jsonConfig) {  
  35.         return process(value);  
  36.     }  
  37.   
  38.     public Object processObjectValue(String key, Object value,  
  39.         JsonConfig jsonConfig) {  
  40.         return process(value);  
  41.     }  
  42.   
  43.     private Object process(Object value) {  
  44.         return dateFormat.format((Date) value);  
  45.     }  
  46. }  

 然后在bean -> json的时候

# /** 
#  * write. 
#  * 
#  * @param bean obj 
#  * @param writer 输出流 
#  * @param excludes 不转换的属性数组 
#  * @param datePattern date到string转换的模式 
#  * @throws Exception 写入数据可能出现异常 
#  */  
# public static void write(Object bean, Writer writer,  
#     String[] excludes, String datePattern) throws Exception {  
#     JsonConfig jsonConfig = configJson(excludes, datePattern);  
#   
#     JSON json = JSONSerializer.toJSON(bean, jsonConfig);  
#   
#     json.write(writer);  
# }  
#   
# /** 
#  * 配置json-lib需要的excludes和datePattern. 
#  * 
#  * @param excludes 不需要转换的属性数组 
#  * @param datePattern 日期转换模式 
#  * @return JsonConfig 根据excludes和dataPattern生成的jsonConfig,用于write 
#  */  
# public static JsonConfig configJson(String[] excludes,  
#     String datePattern) {  
#     JsonConfig jsonConfig = new JsonConfig();  
#     jsonConfig.setExcludes(excludes);  
#     jsonConfig.setIgnoreDefaultExcludes(false);  
#     jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
#     jsonConfig.registerJsonValueProcessor(Date.class,  
#         new DateJsonValueProcessor(datePattern));  
#   
#     return jsonConfig;  
# }  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值