代码如下:
1.Group exitGroup=new Group();
2.JSONArray jsonArray=new JSONArray();3.JSONObject jsonObject=new JSONObject();
4.exitGroup=groupService.showGroupByGroupid(group.getGroupid());
5.jsonObject.put("group",exitGroup);
6.jsonArray.add(jsonObject);
报错信息如下:
net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
错误位置:
代码的第5句错误
错误原因:
jsonObject装配的参数:第一个为字符串,没问题。第二个为实体对象,按理来说没问题。其实是实体对象的某个属性与数据库的不匹配,尤其是实体对象中存在Date类型。
错误解决办法:
对于实体类存在Date类型:
1.查看date包是否导入错误,若是时间date,导包应该是import java.util.Date;
2.查看date是否与数据库匹配。比如数据库使用的是date类型,实体类中也应该是date类型。若数据库是datetime类型,实体类也应该进行相应的映射,表示该字段存放时间戳。
3.实体类字段是否与数据库数据进行映射。我用的框架为ssh,采用注解式映射:@Temporal(TemporalType.DATE),将该注解添加到date字段上或者get方法上。但是有个bug,很奇怪,我的其中一个实体是加到字段上,可以运行,且结果正确。但第二个实体加入到字段上无法映射,报该错误。加入get方法上则问题解决。建议都加到get方法上。