`

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

阅读更多

很多时候数据表都有外键表的,当用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所需要的包,测试过成功,请放心使用

分享到:
评论
4 楼 jenlp520 2010-06-01  
yaoba 写道
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "hibernateLazyInitializer","handler","tProvince"});
JSONArray json=JSONArray.fromObject(list1,jsonConfig);   

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


正解
3 楼 yaoba 2010-06-01  
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "hibernateLazyInitializer","handler","tProvince"});
JSONArray json=JSONArray.fromObject(list1,jsonConfig);   

这样就可以了,不用那么麻烦
2 楼 walle1027 2010-04-13  
其实可以自己写个json转换器,避免这些麻烦。
1 楼 zjha4148 2010-04-13  
楼主正解,我的问题解决了!!!

相关推荐

    将list转换为json失败的原因

    如何用的hibernate的自动注解,并且里面有一对多,多对一的关系,这是需要在不需要的字段上加上注解@JsonIgnore

    hibernate-types:Hibernate Types库为您提供了Hibernate ORM核心不支持的其他类型

    将JSON列类型映射到List或Map<String> ,需要确保POJO类型覆盖默认的equals和hashCode方法,并根据JSON对象的内容实现它们。 否则,Hibernate脏检查机制可能会触发意外的UPDATE语句。 查看。 Oracle 您应该使用...

    json-playback-player-hibernate:在后端和前端之间集成实体对象图操作(字段,集合修改等)的框架

    $ cd /c/git/github.com/hailtondecastro/json-playback-player-hibernate $ git config --global commit.gpgsign true $ gpg --list-secret-keys --keyid-format LONG $ gpg --full-generate-key gpg (GnuPG) ...

    低清版 大型门户网站是这样炼成的.pdf

    5.1.10 使用hibernate的isinitialized()与initialize()方法 277 5.1.11 持久化对象间的级联操作 277 5.2 hibernate的检索策略 291 5.2.1 立即检索 291 5.2.2 延迟检索 296 5.2.3 迫切左外连接检索 300 5.3 hql...

    gcdService:带有 Rest 和 SOAP Web 服务、JMS(ActiveMQ)、JPA、Hibernate 和 HSQLDB 的 Spring Web 应用程序

    JMS 队列并将其保存到数据库 b) public List list() - 以 JSON 格式显示所有已保存数字的列表SOAP API a) public int gcd() - 从 JMS 队列获取消息并计算数字的 GCD。 b)public List gcdList() - 计算保存到数据库的...

    Java面试宝典2020修订版V1.0.1.doc

    3、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 56 4、线程的基本概念 57 5、什么是多线程 57 6、程序、进程、线程之间的关系 57 7、创建线程有几种方式,分别是什么? ...

    javaee三大框架整合宅急送项目lib包

    解决: hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect ======================================================================================================================== 三、 流程...

    SpringMVC简易员工管理演示系统(J2EE版)

    该演示系统应用了SpringMVC、JQuery、Hibernate-Validator、Interceptor、Object Converter、DIV+CSS3、JSON、Interceptor等主流技术,另外借助了Map、List、文本文件等数据存储器。

    spring_MVC源码

    文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下。 先说web.xml配置: [java] view plaincopy 01.<?xml version="1.0" encoding="UTF-8"?> 02....

    Java学习笔记-个人整理的

    {1.7}方法}{26}{section.1.7} {1.8}运算符}{27}{section.1.8} {1.8.1}自增运算}{28}{subsection.1.8.1} {1.8.1.1}Postincrement}{28}{subsubsection.1.8.1.1} {1.8.1.2}Preincrement}{28}{subsubsection.1.8....

    web开发中常用的jar包

    FILESLIST111.TXT freemarker-2.3.19.jar hibernate-jpa-2.0-api-1.0.1.Final.jar hibernate3.jar javassist-3.11.0.GA.jar javassist-3.12.0.GA.jar jta-1.1.jar log4j-1.2.17.jar mail.jar mysql-connector-java-...

    fonetic:测试弹簧 REST

    应用程序允许调用 REST 服务(HTTP / JSON) 实现是 Spring REST + Hibernate,并使用 Spring Boot 进行集成 允许您查阅在内存数据库中创建的项目列表 HSQLDB 项目是在启动应用程序时从 import.sql 文件创建的 如何...

    spring-rest-ecommerce:Java Spring Boot-电子商务REST API

    基于Java Spring,Spring Boot,带有MySQL的Hibernate ORM,Spring HATEOAS,Spring Fox(Swagger API文档),JWT和Redis的电子商务REST API。 REST API端点 所有输入和输出均使用JSON格式。 要打开Swagger(交互式...

    使用struts2+Ajax+jquery验证用户名是否已被注册

    在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面的例子,我们只希望返回一个1和0有助于进行后续判断即可,没必要返回json类型,返回一个text字符串就可以了. regist.jsp(这里只提供[removed]部分): ...

    java开源包1

    使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的...

    java开源包11

    使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的...

    java开源包2

    使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的...

    java开源包3

    使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的...

    springframework.5.0.12.RELEASE

    StringHttpMessageConverter should assume charset UTF-8 for application/json [SPR-17568] #22100 NettyDataBufferFactory.join should return original buffer as-is in case of a single element (for ...

    java开源包6

    使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据 5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的...

Global site tag (gtag.js) - Google Analytics