问题解释
级联解析就是类间相互引用,比如说ClassA中有ClassB的引用,ClassB中也有ClassA的引用,这种情况在Hibernate中的双向关联会很常见。如果是这种情况,在json-lib解析的过程中,会出现net.sf.json.JSONException: There is a cycle in the hierarchy异常。
解决办法
1、采用json-lib提供的过滤字段的方法
JsonConfig config = new JsonConfig();
String[] excludeProperties = new String[]{
"propertyA","propertyB", "propertyC"
};
config.setExcludes(excludeProperties);
JSONObject jsonObject = JSONObject.fromObject(obj,config);
String jsonStr = jsonObject.toString();
2、设置JsonConfig的循环策略
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONObject jsonObject = JSONObject.fromObject(obj,config);
String jsonStr = jsonObject.toString();
CycleDetectionStrategy 是指遇到循环解析时将采用的策略。
CycleDetectionStrategy 有如下几种取值:
LENIENT
Returns empty array and null object
NOPROP
Returns a special object (IGNORE_PROPERTY_OBJ)
that indicates the entire property should be ignored
STRICT
Throws a JSONException
分享到:
相关推荐
AJAX-DWR下拉框级联AJAX-DWR下拉框级联 真正实用的`仅供参考
纯JS---省份城市级联选择, (this);" style="width: 49%; float: left;"> ; float: right;"></select>
2020-06 iview级联选择器-省市区三级联动js文件下载 2020-06 iview级联选择器-省市区三级联动js文件下载
继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...
DirectX11 With Windows SDK--38 级联阴影贴图(CSM).doc
人工智能-机器学习-基于目标级联法和智能优化算法的车间调度问题研究.pdf
jquery操作Dom对象,解析json数据,实现级联菜单,里面用到了事件绑定
行业分类-设备装置-一种级联式储能变流器检测平台及其控制方法.zip
hibernate many-to-many级联保存,级联更新,级联删除
Brocade-光纤交换机级联及划分ZONE.doc
Excel表格+Word文档各类各行业模板-建立复杂级联菜单.zip
Brocade-光纤交换机级联及划分ZONE.docx
行业资料-电子功用-四结级联太阳能电池及其制备方法
JQuery实例-年月日级联菜单.rar
matlab开发-多电平级联H桥变换器的控制。七电平移相移相脉宽调制CHB逆变器的THD研究
电子政务-一种级联式电压测试装置.zip
联系通过写存储过程进行级联删除,在实际开发中总结的
android读取xml资源实现省-市-区的级联选择 具体参考我的博客: http://blog.csdn.net/jiguangcanhen/article/details/41074703 改资源为ant架构,gradle架构,请下载之后自己用Eclipse导吧。
基于EMD-CF的级联光栅微振动传感器光谱优化算法.docx