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

解决办法

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);

来源链接:https://www.jb51.net/article/22224.htm

© 版权声明
THE END
支持一下吧
点赞5 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容