json-lib出现There is a cycle in the hierarchy解决办法
作者:bea
解决办法 1.设置JSON-LIB让其过滤掉引起循环的字段。 Java代码 代码如下: JsonConfig config = new JsonConfig(); config.setIgnoreDefaultExcludes(false); config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); config.registerJsonValueProcessor(Date.class,n
解决办法
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);
有用 | 无用
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 面向对象代码实践
- Javascript 使用function定义构造函数
- JQuery 将元素显示在屏幕的中央的代码
- JQuery团队打造的javascript单元测试工具QUnit介绍
- getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
- JavaScript 空位补零实现代码
- javascript replace()正则替换实现代码
- JavaScript 时分秒时间代码(自动补零)
- javascript function调用时的参数检测常用办法
- jquery1.4 教程三 新增方法教程
- jquery1.4 教程二 ajax方法的改进
- jquery1.4 教程一 便利的设置函数
- jquery 1.4.2发布!主要是性能与API
- jQuery 方法大全方便学习参考
- js 面向对象的技术创建高级 Web 应用程序
- javascript 命名规则 变量命名规则
- js 表格拖拽效果实例代码 (IE only)
- javascript for循环设法提高性能
- 判断控件是否已加载完成的代码