使用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的通用工具类。
分享到:
相关推荐
继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...
识别处理图像中人脸,人体是图像识别的一个重要分支,在很多场合都需要对人进行查找和处理,在拍照,自动驾驶,机器人,医学,安防等上都有广泛 的用途。opencv 有众多的级联分类器,可以进行简单的人脸,眼,鼻子,...
ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C) 快捷键生成@Param注解 XML中编辑SQL时, 括号自动补全 XML中编辑SQL时, 支持参数自动补全(基于@Param注解识别参数) 自动检查Mapper XML...
JSON JQuery + Servlet +Json实现下拉框级联 json-lib-2.4-jdk15.jar所依赖jar的整理整理
json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript?...
电子-STM32定时器级联.pdf,单片机/嵌入式STM32-F0/F1/F2
网络电子教案7-1+交换机级联.pdf
网络电子教案7-1+交换机级联.doc
Excel表格+Word文档各类各行业模板-建立复杂级联菜单.zip
华为RRU级联问题.docx华为RRU级联问题.docx华为RRU级联问题.docx华为RRU级联问题.docx华为RRU级联问题.docx华为RRU级联问题.docx华为RRU级联问题.docx华为RRU级联问题.docx
JQuery实例-年月日级联菜单.rar
json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript编程,...
智能电网级联故障建模matlab源码+项目说明.zip智能电网级联故障建模matlab源码+项目说明.zip智能电网级联故障建模matlab源码+项目说明.zip智能电网级联故障建模matlab源码+项目说明.zip智能电网级联故障建模matlab...
华为RRU级联问题.pdf华为RRU级联问题.pdf华为RRU级联问题.pdf华为RRU级联问题.pdf华为RRU级联问题.pdf华为RRU级联问题.pdf华为RRU级联问题.pdf华为RRU级联问题.pdf
Spectrum Microwave Cascade7.0-RF级联频谱分析,适用于级联系统指标计算,包括但不限于NF、OIP3、输出频谱以及杂散分析
全国省-市-区县-街道-居委会级联关系,不保证完整,注意上传时间,使用sqlite保存,请自己手动json导出
layui的插件效果,优化基础layui的原装组件的效果。 layui 是一款采用自身模块规范...其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。
ResultMap中的property支持自动补全,支持级联(属性A.属性B.属性C) 快捷键生成@Param注解 XML中编辑SQL时, 括号自动补全 XML中编辑SQL时, 支持参数自动补全(基于@Param注解识别参数) 自动检查Mapper XML...
hibernate many-to-many级联保存,级联更新,级联删除
74HC595 级联应用中的注意问题,时钟偏移问题