json中date类型数据为空促成转JAVA对象失败
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的这一段
- try{
- return dateParser.parse( strValue.toLowerCase() );
- } catch( ParseException pe ){
- // ignore exception, try the next format
- }
所以我改成如下样子
- try{
- return dateParser.parse( strValue.toLowerCase() );
- }
- catch( ParseException pe ){
- return null;
- }
这样就行了。
测试结果如下:
附件是修改后的ezmorph-1.0.6.jar,下载即可用。