json-lib出现There is a cycle in the hierarchy解决办法


Posted in Javascript onFebruary 24, 2010

解决办法

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);
Javascript 相关文章推荐
js AspxButton的客户端操作
Jun 26 Javascript
js的逻辑运算符 ||
May 31 Javascript
jquery制作 随机弹跳的小球特效
Feb 01 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
Nov 18 Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
vue中添加mp3音频文件的方法
Mar 02 Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
JS中==、===你分清楚了吗
Mar 04 Javascript
解决Vue watch里调用方法的坑
Nov 07 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 #Javascript
javascript Firefox与IE 替换节点的方法
Feb 24 #Javascript
jQuery 性能优化手册 推荐
Feb 23 #Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
Feb 23 #Javascript
JSON 学习之JSON in JavaScript详细使用说明
Feb 23 #Javascript
js下用层来实现select的title提示属性
Feb 23 #Javascript
jquery 锁定弹出层实现代码
Feb 23 #Javascript
You might like
15种PHP Encoder的比较
2007/04/17 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
js实现简单页面全屏
2019/09/17 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
Python 列表反转显示的四种方法
2020/11/16 Python
高级方案规划工程师岗位职责
2013/11/29 职场文书
教师个人剖析材料
2014/02/05 职场文书
环境保护标语
2014/06/20 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python