json-lib出现There is a cycle in the hierarchy解决办法_Javascript教程-查字典教程网
json-lib出现There is a cycle in the hierarchy解决办法
json-lib出现There is a cycle in the hierarchy解决办法
发布时间:2016-12-30 来源:查字典编辑
摘要:解决办法1.设置JSON-LIB让其过滤掉引起循环的字段。Java代码复制代码代码如下:JsonConfigconfig=newJsonCo...

解决办法

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教程学习
    编程开发子分类