`
carvin
  • 浏览: 212916 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

json-lib 解决级联解析问题

    博客分类:
  • java
阅读更多
问题解释
级联解析就是类间相互引用,比如说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 
分享到:
评论

相关推荐

    STM32单片机通过LTC6804-1读取级联电池电压软件程序工程源码.zip

    STM32单片机通过LTC6804-1读取级联电池电压软件程序工程源码 int main(void) { RCC_Configuration(); GPIO_Configuration(); //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_Config() ; ...

    纯JS---省份城市级联选择,

    纯JS---省份城市级联选择, (this);" style="width: 49%; float: left;"> ; float: right;"></select>

    2020-06 iview级联选择器-省市区三级联动

    2020-06 iview级联选择器-省市区三级联动js文件下载 2020-06 iview级联选择器-省市区三级联动js文件下载

    json-rpc-for-java

    继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...

    JSON-RPC for Java使用说明.doc

    JSON-RPC for Java 是一个使用 Java 实现的 JSON-RPC 协议库,提供了一个轻量级的远程过程调用解决方案。该库支持多种数据类型,包括基本类型、数组、List、Map 等,并提供了丰富的 API 接口,方便开发者使用。 ...

    rs_cnv_RS卷积码_RS-卷积码级联_RS级联码_rs码_级联码matlab

    本文将深入探讨这两种编码方式及其级联应用,并结合MATLAB环境进行解析。 首先,Reed-Solomon码是一种非线性分组码,基于伽罗华域上的多项式运算。它能够在数据序列中检测并纠正一定数量的错误位,特别适合在有大量...

    AJAX-DWR下拉框级联

    5. **返回并更新页面**:DWR将服务器端返回的JSON字符串传递回JavaScript函数,然后使用JavaScript解析JSON数据并动态生成“系”下拉框的`<option>`元素。 示例代码片段: ```html (this.value)"> <!-- 预先加载...

    Jquery解析Json数据,实现级联菜单

    本主题将深入探讨如何使用jQuery解析JSON数据并实现级联菜单,这在构建动态和交互性强的用户界面时非常常见。级联菜单通常用于导航,其中下拉选项根据上一个选项的选择而变化,提供更具体的子类别。 首先,让我们...

    存储过程-游标-级联删除

    在数据库管理中,级联删除是一种常见的操作,它涉及到一个表中的记录被删除时,与之关联的其他表中的记录也会自动被删除。在大型数据库系统中,这种功能通常通过外键约束来实现,但在某些情况下,如需要自定义删除...

    casForest-master_级联森林_

    级联森林在分类和回归问题中表现良好,尤其适用于大规模数据集和高维特征空间。例如,在图像识别、文本分类、推荐系统等领域都有广泛的应用。 总结,级联森林是一种结合了决策树和随机森林优点的机器学习模型,通过...

    android读取xml资源实现省-市-区的级联选择

    android读取xml资源实现省-市-区的级联选择 具体参考我的博客: http://blog.csdn.net/jiguangcanhen/article/details/41074703 改资源为ant架构,gradle架构,请下载之后自己用Eclipse导吧。

    java 使用json-rpc

    随着Web应用程序的发展,前后端分离的架构越来越普遍,JSON-RPC作为轻量级的远程调用协议,可以很好地解决前后端交互的问题,特别是在需要跨域调用时,JSON-RPC比传统的HTTP RESTful API更加便捷。 ### 应用前景和...

    hibernate many-to-many级联保存,级联更新,级联删除

    在Java的持久化框架Hibernate中,Many-to-Many关系是一种常见的数据库表之间的关联方式,它表示一个实体可以与多个其他实体进行...但同时要注意,不当的级联操作可能导致数据安全问题,所以需要根据实际情况谨慎选择。

    Json-RPC for java Example

    json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript编程,...

    全国高校 省-市-学校名称级联JSON数据

    三级级联全国高校json数据格式,主要用于用户在选择学校时根据省市检索

    两个平行的分裂 - 重整 - 合并的级联单元组成的层流静态混合仿真

    本例模拟两个平行的分裂 - 重整 - 合并的级联单元组成的层流静态混合器。每一个混合单元使流层数翻倍,加快了混合过程。

    jQuery ajax JSON 下拉列表框级联

    本示例中的"jQuery ajax JSON 下拉列表框级联"就是这样的一个应用。 1. **jQuery**:jQuery是一个高效、简洁且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。在本案例中,jQuery用于...

    json城市三级级联

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web开发中,JSON常用于在客户端和服务器之间传递数据。jQuery是一个快速、简洁的JavaScript库,它...

    Json-RPC_for_Java使用说明

    ### JSON-RPC_for_Java使用说明详解 #### 概述 JSON-RPC_for_Java是一款专为Java开发者设计的轻量级、零入侵式的远程过程调用(RPC)框架,旨在简化JavaScript与Java对象之间的交互。它允许JavaScript前端直接调用...

Global site tag (gtag.js) - Google Analytics