json中date类型数据为空造成转JAVA对象失败

最近在学习java对象和json互相转换,发现当java对象里date类型属性值为null时,

会报如下异常:

net.sf.json.JSONException: Error while setting property=date type class java.lang.String

看了下json-lib的源码,才发现Json转Java的时候,调用ezmorph-1.0.6.jar中的DateMorpher类有问题:

如果date的格式错误或者为空(总之就是转换错误)的时候,没有对错误处理。

就在net.sf.ezmorph.object.DateMorpher的这一段

Java代码   收藏代码
  1. try{   
  2.        return dateParser.parse( strValue.toLowerCase() );  
  3.  } catch( ParseException pe ){   
  4.      // ignore exception, try the next format   
  5. }   

 所以我改成如下样子

Java代码   收藏代码
  1. try{  
  2.    return dateParser.parse( strValue.toLowerCase() );  
  3. }  
  4. catch( ParseException pe ){  
  5.    return null;  
  6. }  

 

 这样就行了。

测试结果如下:


json中date类型数据为空造成转JAVA对象失败_第1张图片
 

附件是修改后的ezmorph-1.0.6.jar,下载即可用。

 

你可能感兴趣的:(JSON)