在使用JSONObject.fromObject的时候,出现“There is a cycle in the hierarchy”异常。

意思是出现了死循环,也就是Model之间有循环包含关系;

其一:根据原理来解决,如果需要解析的数据间存在级联关系,而互相嵌套引用,在hibernate中极容易嵌套而抛出net.sf.json.JSONException: There is a cycle in the hierarchy异常。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200220200549398.png

User.java


UserAction

由于查询user时实体类里面有一个属性saleVisits,这是一个SaleVisits实体类的集合对象,里面存在visit_user_id属性,数据间存在级联关系,而互相嵌套引用,在hibernate中极容易嵌套而抛出net.sf.json.JSONException: There is a cycle in the hierarchy异常。

解决方案
1 .设置JSON-LIB让其过滤掉引起循环的字段:

     //解决死循环JsonConfig jsonConfig = new JsonConfig();jsonConfig.setExcludes(new String[]{"roles","saleVisits"});// 将返回结果转成jsonString json = JSONArray.fromObject(list, jsonConfig).toString();

2.设置JSON-LIB的setCycleDetectionStrategy属性让其自己处理循环,省事但是数据过于复杂的话会引起数据溢出或者效率低下。

JsonConfig jsonConfig = new JsonConfig(); //建立配置文件
jsonConfig.setIgnoreDefaultExcludes(false); //设置默认忽略
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig); //加载配置文件
return null;

3.最为原始的办法,自己写个JavaBean,用forEach循环,添加到List中.

There is a cycle in the hierarchy相关推荐

  1. JSONException: There is a cycle in the hierarchy

    见:https://blog.csdn.net/testcs_dn/article/details/24694709 http://www.cnblogs.com/az19870227/archive ...

  2. 报错问题解决:net.sf.json.JSONException: There is a cycle in the hierarchy!

    若非java这一块相关的战友,直接点评即可,无需阅读文章 报错问题: net.sf.json.JSONException: There is a cycle in the hierarchy! atn ...

  3. json 报错 There is a cycle in the hierarchy!

    2019独角兽企业重金招聘Python工程师标准>>> 因为项目是使用的hibernate的, 所以查数据库里面查询的时候,会 join 查询到 其他对象的. 如果是 使用 jack ...

  4. hibernate报错 net.sf.json.util.CycleDetectionStrategy$StrictionStrategyRepeatedReferenceAsObject

    =执行{+com.j.serviceimpl.ArticleServiceimpl+}类的的+97+行的+selectAllByIdS+()方法, ===异常信息为:{} There is a cyc ...

  5. 清理收藏夹中的json

    1.json的字符串与对象转换 $.parseJson(str)与JSON.parse(str) 返回值是true.另:json对象和字符串的相互转换 JSON.stringify(obj) 将JSO ...

  6. Debug签名时候数据正常正式签名的时候数据不正常,不显示,或者数据错乱问题

    转载至:https://blog.csdn.net/wzy901213/article/details/82877858 最近,给自己的项目加上了代码混淆,在构建打包安装阶段没有任何问题,但是运行在手 ...

  7. 宅急送项目开发过程及问题?

    一. 需求和文档  1. 项目类型  OA : 办公自动化(Office Automation,简称OA)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式  CRM : CRM(Custom ...

  8. 记录_20180417

    ***************@Date("2018-4-17")*************** ===首次审核=== # 首页设计及实现 # 首页功能导航 # 表单下掉 # 表格 ...

  9. Linked List Cycle II

    Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...

最新文章

  1. oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...
  2. python代码需要背吗-python程序需要编译吗
  3. jQuery、ajax添加Json数据
  4. 洛谷——P1177 【模板】快速排序
  5. 服务器向用户返回的状态码,常用的有:
  6. 解开拒绝本地登录的“死结”
  7. gwt格式_GWT的渐进式Web应用程序配方
  8. 从一个视图控制器切换到另一个视图控制器的几种方式
  9. java中的post的作用,JSP、Servlet中get请求和post请求的区别总结
  10. 付出与收获对等的自然法则,执行力离开去做马上去做
  11. ElasticSearch的优点
  12. java复制文件拒绝访问权限_关于IO流在复制文件时出现java.io.FileNotFoundException: D:\xxx (拒绝访问。) 拒绝访问的问题...
  13. FixFox 打包xpi扩展
  14. 电感的两种模式——DCM和CCM的区别
  15. 区块链基础:交易模型解读
  16. Win10自定义路径位置安装WSL2 (Ubuntu 20.04) 并配置CUDA
  17. jquery--拖拽效果
  18. 史上最通俗,彻底搞懂字符乱码问题的本质
  19. 百度主动推送怎么用?
  20. 多人使用服务器,如何开个人账户?以及 个人账户如何操作服务器?

热门文章

  1. 基于One—stage的目标检测算法综述
  2. 2021年高考成绩查询襄阳状元,2021年襄阳高考状元是谁分数多少分,历年襄阳高考状元名单...
  3. IT痴汉的工作现状28-刀客许三爷(上)
  4. Top 11 Best Practices for PHP Development
  5. easyexcel处理合并单元格数据
  6. 适用mini SD卡的手机
  7. iPad不断重启怎么办?
  8. 支付宝(蚂蚁)开放平台压力测试经验
  9. http://dev.firnow.com/course/3_program/java/javashl/200726/11199.html
  10. AP 产品成本计算与传统成本计算