java.lang.ClassCastException: [Ljava.lang.Object;

百度说这是类型转换出错的,比如对象A里面有属性对象B,如果强制转换成对象A就会出现这个错误。下面是代码:

List<Object[]> list = null;
		String jsonStr = "AccountOpreate:[";
		AccountOpreate dataList[];
		AccountMember memberObj;
		AccountOpreate opreateObj;
		
		System.out.println("getAllMemberCountDetail dao start");
		list = getHibernateTemplate().find("from AccountMember M,AccountOpreate O where M.memberId=O.accountMember and M.accountUser="+orderUser.getUserId());
		
		dataList = new AccountOpreate[list.size()];
		for(int i =0;i<list.size();i++){
			
			memberObj = new AccountMember();
			opreateObj = new AccountOpreate();
			memberObj.setMemberName((((AccountMember)list.get(i)[0])).getMemberName());
			memberObj.setMemberMail((((AccountMember)list.get(i)[0])).getMemberMail());
			
			JsonConfig jsonConfig = new JsonConfig(); //设置过滤
			jsonConfig.setIgnoreDefaultExcludes(false);  //设置默认忽略
			jsonConfig.setExcludes(new String[]{"accountUser","accountOpreates"});// 过滤相关字段
			
			String memberJson = JSONObject.fromObject(memberObj,jsonConfig).toString();
			jsonStr+=memberJson.substring(0, memberJson.length()-1)+",";
			
			opreateObj.setCreateTime((((AccountOpreate)list.get(i)[1])).getIcomeDate());
			opreateObj.setIcomeInfo((((AccountOpreate)list.get(i)[1])).getIcomeInfo());
			opreateObj.setRemark((((AccountOpreate)list.get(i)[1])).getRemark());
						
			String opreateJson = JSONObject.fromObject(opreateObj).toString();
			jsonStr+=opreateJson.substring(1, opreateJson.length())+",";
		}
		jsonStr+="]";
    其实这个问题通过过滤关键字段也是 解决,不过这就意味着需要丢失一些字段的信息。我的思路是:将一个Object分解后再转换类型,再将两个对象转换成json字符串拼接起来,这样就可以保留需要的信息。当然,如果看哪个字段不顺眼,也可以过滤掉。。。呵呵,好像说复杂了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值