论坛首页 Java企业应用论坛

hibernate List 转JSON发生错的解决方法

浏览 5345 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-02-12   最后修改:2010-02-12

很多时候数据表都有外键表的,当用hibernate查询结果集时,其关联的对象集也一起来,所以会造成转换JSON发生错误;

以下是一段查询 城市表 的,其关联的主键表是 省份名,

 

 

以下是方法里的代码,需要 import net.sf.json.*;

 

List list1=new hi.TCityDAO().findAll();
  List li=new ArrayList();//用于装入用来转成JSON的List
  for (Iterator iterator = list1.iterator(); iterator.hasNext();) {
   TCity object = (TCity) iterator.next();
   object.setTProvince(null); //将省份表的对象设为空,不然会出错,出错的原因也在此
   li.add(object);
  }

 

   //这个地方要注意,如果是javabean对象时要用 JSONObject json=JSONObject.fromObject(objece);
  JSONArray json=JSONArray.fromObject(li);   

 

  System.out.println(json.toString()); //最后输出的JSON字符串

 

另:附出JSON所需要的包,测试过成功,请放心使用

   发表时间:2010-04-13  
楼主正解,我的问题解决了!!!
0 请登录后投票
   发表时间:2010-04-13  
其实可以自己写个json转换器,避免这些麻烦。
0 请登录后投票
   发表时间:2010-06-01  
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "hibernateLazyInitializer","handler","tProvince"});
JSONArray json=JSONArray.fromObject(list1,jsonConfig);   

这样就可以了,不用那么麻烦
0 请登录后投票
   发表时间:2010-06-01  
yaoba 写道
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "hibernateLazyInitializer","handler","tProvince"});
JSONArray json=JSONArray.fromObject(list1,jsonConfig);   

这样就可以了,不用那么麻烦


正解
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics