使用json-lib-1.5.jar来处理java和json的转换的确给我们带来了不少的方便,但是在处理存在级联关系的pojo时,使用fromObject时就会报:net.sf.json.JSONException: There is a cycle in the hierarchy!,使得生成json掉入了级联的循环陷阱中,但是pojo肯定会存在级联关系,怎么解决这个问题呢?
当然你可以拼写字符串,也可以使用map,但是仍然不是非常方便,需要一个个的处理属性。其实json.jar给我们提供了一个相关的处理来应对这样的情况,就是通过JSON的配置类JsonConfig。如下代码所示:
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
String[] excludes = { "poNewsArticle", "class" };
jsonConfig.setExcludes(excludes);
PoNewsComment c=newsService.getCommentById(id);
JSONObject jsonObject = JSONObject.fromObject(c);
System.out.println(jsonObject.toString());
PoNewsComment.java
public class PoNewsComment implements java.io.Serializable {
// Fields
private Integer commentId;
private PoNewsArticle poNewsArticle;//关联的新闻的pojo
private String comment;
private String commenter;
private Date commentTime;
private short commentStatus;
private String commenterIp;
//省略set、get方法
}
其实其他的情况都可以使用JsonConfig来处理,包括时间转换,数据类型的转换等等。下一篇将介绍一个操作json的通用工具类。
分享到:
相关推荐
- **多版本并发控制**: JPA 2.1引入了乐观锁和悲观锁策略,用于解决多线程环境下的数据一致性问题。 - **级联操作**: 支持在实体之间定义级联操作,如删除一个实体时自动删除与之关联的其他实体。 - **延迟加载**:...
在Hibernate中,CGLIB被用于动态生成持久化类的代理对象,当我们的实体类没有实现任何接口时,Hibernate就会选择使用CGLIB来生成代理,以便实现透明化的懒加载和级联操作。 在“hibernate-cglib-repack-2.1_3.jar”...
2. **人脸检测**:此阶段可能采用了Haar特征或者HOG(Histogram of Oriented Gradients)特征的级联分类器,如Adaboost训练的级联分类器,用于定位图像中的人脸区域。 3. **特征提取**:特征提取是将人脸图像转换为...
在实际应用中,Flume 还支持级联(cascading),这意味着多个 Flume 代理可以串联起来,形成一个更复杂的数据流处理链路。这使得数据可以在多个代理间流动,进行更复杂的处理和转换。 此外,Flume 1.8.0 版本可能...
JSON-RPC 是一种基于 JSON(JavaScript Object Notation)的远程过程调用协议,使用 JSON 编码数据进行数据交换。它的主要特点是轻量级、零入侵、级联调用,非常适合在 Java 应用程序中使用。 在了解 JSON-RPC 之后...
ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C) 快捷键生成@Param注解 XML中编辑SQL时, 括号自动补全 XML中编辑SQL时, 支持参数自动补全(基于@Param注解识别参数) 自动检查Mapper XML...
继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程。这个压缩包包含了Hibernate运行所需的全部jar包,确保你可以搭建一个完整的...
EJB3(Enterprise JavaBeans 3)是Java企业级应用开发的一个重要组成部分,它提供了用于构建分布式、事务处理和安全的服务器端应用程序的框架。在EJB3中,持久化是一个核心特性,允许对象的数据存储到数据库中并能在...
总的来说,“django-postgres-delete-cascade”库可能是为了解决Django与PostgreSQL交互时,关于级联删除操作的自动化和便捷性问题,使得开发者能够更轻松地管理数据库中的关联数据。对于使用Django框架并且依赖...
识别处理图像中人脸,人体是图像识别的一个重要分支,在很多场合都需要对人进行查找和处理,在拍照,自动驾驶,机器人,医学,安防等上都有广泛 的用途。opencv 有众多的级联分类器,可以进行简单的人脸,眼,鼻子,...
本文将深入探讨如何在Hibernate中处理Many-to-Many关系的级联保存、级联更新和级联删除。 一、Many-to-Many关系基础 在数据库设计中,Many-to-Many关系意味着两个实体之间存在多对多的关系。例如,学生可以选修多门...
《深入理解Hibernate JPA 2.0 API源码》 Hibernate JPA 2.0 API是Java持久化领域的重要组成部分,它为开发人员提供了一...通过分析源码,我们可以找到优化点,解决实际问题,甚至贡献自己的代码,推动开源社区的发展。
标题 "haarcascade-lefteye-2splits.xml.zip" 提供了我们即将讨论的核心主题:OpenCV中的级联分类器,特别是用于检测左眼的Haar特征级联分类器。这个XML文件是OpenCV库的一部分,用于实现计算机视觉中的对象检测功能...
标签"xml"表明这个文件是用XML(可扩展标记语言)编写的,这是一种数据交换和存储的标准格式,OpenCV使用XML或YAML格式来存储级联分类器的参数和特征信息。 压缩包中的"使用说明.txt"可能是指导如何在项目中集成和...
随着Web应用程序的发展,前后端分离的架构越来越普遍,JSON-RPC作为轻量级的远程调用协议,可以很好地解决前后端交互的问题,特别是在需要跨域调用时,JSON-RPC比传统的HTTP RESTful API更加便捷。 ### 应用前景和...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON作为数据交换格式,因其简洁、清晰的特点,在Web应用中得到了广泛的应用。而List集合是一种常见...
标题 "haarcascade-frontalface-alt2.xml.zip" 指示我们正在处理一个与人脸识别相关的资源包。这个压缩文件包含的是OpenCV库中的一个人脸检测算法,具体来说是"haarcascade_frontalface_alt2.xml",这是一种基于特征...