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

 更新时间:2010年02月24日 19:17:41   作者:  
如果需要解析的数据间存在级联关系,而互相嵌套引用,在hibernate中极容易嵌套而抛出net.sf.json.JSONException: 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);

相关文章

  • JSON取值前判断

    JSON取值前判断

    这篇文章主要介绍了JSON取值前判断,需要的朋友可以参考下
    2014-12-12
  • JSON 入门教程基础篇 json入门学习笔记

    JSON 入门教程基础篇 json入门学习笔记

    刚开始接触json的时候感觉有点奇怪的命名,后来使用才发现这么简单而且用好用,扩展性很强,这里就为大家整理一下
    2020-09-09
  • 如何实现json数据可视化详解

    如何实现json数据可视化详解

    最近在工作中开发一个内部功能时碰到的一个需求,要把json数据在页面上展示出来,平时浏览器会安装jsonView这样的扩展来看json数据,但是程序要用到的话该怎么办呢?今天在网上搜索的时候,发现了这个小技巧,分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧
    2016-11-11
  • 10分钟学会js处理json的常用方法

    10分钟学会js处理json的常用方法

    这篇文章主要介绍了10分钟学会js处理json的常用方法,需要的朋友可以参考下
    2020-12-12
  • JSON相关知识汇总

    JSON相关知识汇总

    本文给大家汇总了一下关于json的相关的知识点,从基础到示例,非常全面,有需要的小伙伴可以参考下。
    2015-07-07
  • 看了就知道什么是JSON

    看了就知道什么是JSON

    看了就知道什么是JSON...
    2007-12-12
  • Ajax+Json 级联菜单实现代码

    Ajax+Json 级联菜单实现代码

    Ajax+Json 级联菜单实现代码,需要的朋友可以参考下。
    2009-10-10
  • json 介绍 js简单实例

    json 介绍 js简单实例

    json全称是JavaScript Object Notation(javaScript对象符号)。JSON是一种结构化的,轻量级的,完全独立于语言的.基于文本的数据传输格式,在许多场合下用来替代xml文件格式。
    2009-12-12
  • JSON schema配置规范使用教程

    JSON schema配置规范使用教程

    这篇文章主要为大家介绍了JSON schema配置规范使用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Javascript生成json的函数代码(可以用php的json_decode解码)

    Javascript生成json的函数代码(可以用php的json_decode解码)

    这几天迷上了JSON,连项目中一些XML的工作都交给了JSON,话说JSON真的比XML方便的多啊
    2012-06-06

最新评论