问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Grails中把实体类转换为JSONObject对象时报错:There is a cycle in the hierarchy!

发布网友 发布时间:2022-04-24 23:08

我来回答

2个回答

懂视网 时间:2022-04-25 03:29

解决办法

1.设置JSON-LIB让其过滤掉引起循环的字段。

Java代码
代码如下:
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
config.registerJsonValueProcessor(Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); //date processor register
config.setExcludes(new String[]{//只要设置这个数组,指定过滤哪些字段。
"consignee",
"contract",
"coalInfo",
"coalType",
"startStation",
"balanceMan",
"endStation"
});
String tempStr = "{"TotalRecords":"+ total.toString() +","Datas":"+JSONSerializer.toJSON(list,config).toString()+"}";
out.print(tempStr);
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
config.registerJsonValueProcessor(Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); //date processor register
config.setExcludes(new String[]{//只要设置这个数组,指定过滤哪些字段。 "consignee", "contract", "coalInfo", "coalType", "startStation", "balanceMan", "endStation" }); String tempStr = "{"TotalRecords":"+ total.toString() +","Datas":"+JSONSerializer.toJSON(list,config).toString()+"}"; out.print(tempStr);

2.设置JSON-LIB的setCycleDetectionStrategy属性让其自己处理循环,省事但是数据过于复杂的话会引起数据溢出或者效率低下。
Java代码
[code]
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
config.registerJsonValueProcessor(Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); //date processor register
String tempStr = "{"TotalRecords":"+ total.toString() +","Datas":"+JSONSerializer.toJSON(list,config).toString()+"}";
out.print(tempStr);

热心网友 时间:2022-04-25 00:37

应该是你的对象包含了对自身的引用,转换json时进行递归出现这个错误。追问我猜也可能是这个问题,但怎么解决呢,我用JsonConfig把Hello类的所有字段都过滤了,但还是报这个错误,为什么呢

Grails中把实体类转换为JSONObject对象时报错:There is a cycle in t...

应该是你的对象包含了对自身的引用,转换json时进行递归出现这个错误。

json对象转换为实体类 json转换为实体对象 如何将object类转换为具体类 java实体类接收json对象 java实体对象转map object如何强转为对象 java实体类对象赋值 实体类转换为map 实体类怎么转换成json
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何用按键精灵做自动点击器脚本? CLANNAD的图片越多越好,不要游戏的和动漫。 ...是动画还是漫画求给个名字,找到了追加分数,跪求!! ...最好白色为主那种)我要定制在衣服上的!越多越好! 求大量动漫图片下载地址,同人图片不要 求好看的动漫图,同人图或游戏图 高一学生党,想买个1000块左右的手机玩游戏,求推荐 苹果6S更新后很卡怎么办 ...月亮双子,水星摩羯,火星射手,木星巨蟹,土星摩羯,上升双子,星座达人... ...星座\水星星座\火星星座\金星星座\木星星座\土星星座.分别是什么... “舌尖上的天津”里到底有哪些满满都是特色的“非遗”美食? 为什么额头上会长硬硬的豆豆还很疼!是什么原因 额头长了一颗痘痘,又痛又痒。又硬。是怎么回事,红红的 CAD能打开,但是打不开文件 我的额头上长了一些红痘痘,很硬。按一下就特别疼。请问为什么会长这种痘痘?怎样才能消掉? 额头总是长痘痘,又硬又疼,怎么回事 写一封信给你10年后的闺蜜? There is a cycle in the hierarchy! 索尼mx598和lmx701哪个好? 幻灵兽藏身的壶在哪里 原神壶里动物怎么删除 忤逆在古代是多大罪 二战后被国际法庭审叛的德国战犯分别是谁 山下奉文最后的结局? 一键还原怎么备份? 一键还原精灵6.6怎么安装? 使用一键还原精灵会不会把磁盘格式化? 系统还原———还原精灵 谁能告诉我怎么弄一键还原? 一键还原精灵装机版8.15的详细使用方法 跪求2019电影大全,【在线观看】免费百度云资源 盘点2019年最新电影,【免费高清】在线观看百度网盘资源 跪求2019电影推荐,【免费高清】在线观看百度网盘资源 百会穴什么时候按摩最好,怎么样按摩? 跪求2019电影排行,【免费高清】在线观看百度网盘资源 如何按百会穴 盘点2019电影排名,【免费高清】在线观看百度网盘资源 百会穴要怎么按摩?不要粘贴复制,谢谢 下午犯困别担心,三个穴位来帮你!你知道是哪几个吗? 百会穴怎么按摩,有什么作用 颈椎病怎么通过按摩百会穴改善? 百会穴能长按吗 白T恤滴了普洱茶迹怎么洗干净? 系统提示你的电池出现问题,因此导致你的电脑突然关机,这是怎么啦? 请问你是怎么把电池激活的啊,我的也是东芝三洋的电池,刚买几天,损耗20%多,是不是电池有问题啊 如何电动车电池坏了,你是更换电池还是维修电池 你认为电池耗电的原因是手机问题还是电池问题 手机快没电是电池问题? 你的电池损耗多少? 我损耗65%是不是基本报废了? 我问的是电池型号是多少?