有hibernate的实体类转化成JSON过滤无干类型

有hibernate的实体类转化成JSON过滤无关类型 很多时候数据表都有外键表的,当用hibernate查询结果集时,其关联的对象集也一起来,所以会造成转换JSON发生错误;
net.sf.json.JSONException: org.hibernate.LazyInitializationException: 
failed to lazily initialize a collection of role: com.een.entities.GeneralType.generals, 
no session or session was closed
在用JSONObject.fromObject的时候,如果JavaBean中有Set等类型时,会报错hibernate的lazy的错,所以需要过虑掉那些无关的类型。直接贴代码: List<General> list = generalService.list(page, cid); if(list.size()>0){ json.put("status", "1"); json.put("msg", "获取成功"); }else{ json.put("status", "0"); json.put("msg", "暂无数据"); } JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new PropertyFilter() { public boolean apply(Object arg0, String arg1, Object arg2) { if (arg1.equals("generalType")) { return true; } else { return false; } } }); config.setExcludes(new String[] { "hibernateLazyInitializer", "handler", "tProvince" }); JSONArray jsonArray = JSONArray.fromObject(list, config); json.put("dataList", jsonArray); out.print(json); out.flush(); out.close();   结果: {"status":"1","msg":"获取成功","dataList":[{"cnName":"中方供求信息","enName":"Financial","id":2,"sort":50},{"cnName":"6.18项目信息","enName":"Personal account","id":3,"sort":50},{"cnName":"欧盟供求信息","enName":"type","id":1,"sort":50}]}  

转载于:https://my.oschina.net/zchuanzhao/blog/512609

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值