There is a cycle in the hierarchy
在使用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相关推荐
- JSONException: There is a cycle in the hierarchy
见:https://blog.csdn.net/testcs_dn/article/details/24694709 http://www.cnblogs.com/az19870227/archive ...
- 报错问题解决:net.sf.json.JSONException: There is a cycle in the hierarchy!
若非java这一块相关的战友,直接点评即可,无需阅读文章 报错问题: net.sf.json.JSONException: There is a cycle in the hierarchy! atn ...
- json 报错 There is a cycle in the hierarchy!
2019独角兽企业重金招聘Python工程师标准>>> 因为项目是使用的hibernate的, 所以查数据库里面查询的时候,会 join 查询到 其他对象的. 如果是 使用 jack ...
- hibernate报错 net.sf.json.util.CycleDetectionStrategy$StrictionStrategyRepeatedReferenceAsObject
=执行{+com.j.serviceimpl.ArticleServiceimpl+}类的的+97+行的+selectAllByIdS+()方法, ===异常信息为:{} There is a cyc ...
- 清理收藏夹中的json
1.json的字符串与对象转换 $.parseJson(str)与JSON.parse(str) 返回值是true.另:json对象和字符串的相互转换 JSON.stringify(obj) 将JSO ...
- Debug签名时候数据正常正式签名的时候数据不正常,不显示,或者数据错乱问题
转载至:https://blog.csdn.net/wzy901213/article/details/82877858 最近,给自己的项目加上了代码混淆,在构建打包安装阶段没有任何问题,但是运行在手 ...
- 宅急送项目开发过程及问题?
一. 需求和文档 1. 项目类型 OA : 办公自动化(Office Automation,简称OA)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式 CRM : CRM(Custom ...
- 记录_20180417
***************@Date("2018-4-17")*************** ===首次审核=== # 首页设计及实现 # 首页功能导航 # 表单下掉 # 表格 ...
- Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...
最新文章
- oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...
- python代码需要背吗-python程序需要编译吗
- jQuery、ajax添加Json数据
- 洛谷——P1177 【模板】快速排序
- 服务器向用户返回的状态码,常用的有:
- 解开拒绝本地登录的“死结”
- gwt格式_GWT的渐进式Web应用程序配方
- 从一个视图控制器切换到另一个视图控制器的几种方式
- java中的post的作用,JSP、Servlet中get请求和post请求的区别总结
- 付出与收获对等的自然法则,执行力离开去做马上去做
- ElasticSearch的优点
- java复制文件拒绝访问权限_关于IO流在复制文件时出现java.io.FileNotFoundException: D:\xxx (拒绝访问。) 拒绝访问的问题...
- FixFox 打包xpi扩展
- 电感的两种模式——DCM和CCM的区别
- 区块链基础:交易模型解读
- Win10自定义路径位置安装WSL2 (Ubuntu 20.04) 并配置CUDA
- jquery--拖拽效果
- 史上最通俗,彻底搞懂字符乱码问题的本质
- 百度主动推送怎么用?
- 多人使用服务器,如何开个人账户?以及 个人账户如何操作服务器?
热门文章
- 基于One—stage的目标检测算法综述
- 2021年高考成绩查询襄阳状元,2021年襄阳高考状元是谁分数多少分,历年襄阳高考状元名单...
- IT痴汉的工作现状28-刀客许三爷(上)
- Top 11 Best Practices for PHP Development
- easyexcel处理合并单元格数据
- 适用mini SD卡的手机
- iPad不断重启怎么办?
- 支付宝(蚂蚁)开放平台压力测试经验
- http://dev.firnow.com/course/3_program/java/javashl/200726/11199.html
- AP 产品成本计算与传统成本计算