Web项目中数据库表很多时,往往会出现表Set集合与表Set集合的互相嵌套,在将这些数据进行JSON转换时很
可能会报一个错误“There is a cycle in the hierarchy!”。今天就遇到了一个棘手的问题,通过过滤条件过滤时,
我发现“曾孙层”与“爷爷”层重名,我只想过滤曾孙层时,进行单纯的过滤发现把“爷爷”层也给过滤掉了,去掉过
滤字符,却提示我有“There is a cycle in the hierarchy!”。对于这种问题,幸运的是json包里还是为我们提供了一
把利剑“setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); ”可以自动排除Circle。
综上所述,最终的代码只需要:
PrisonUtil jsonUtil = new PrisonUtil(); JsonConfig jsonConfig = new JsonConfig(); ArrayList<String> lstName = new ArrayList<String>(); lstName.add("tabDevAccesscontrols"); lstName.add("tabApprovalInfos");//过滤掉不需要的 //lstName.add("tabUserCardinfo");//过滤掉不需要的 jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); //自动为我排除circle。 jsonUtil.ConfigFilter(lstName, jsonConfig); jsonConfig.registerJsonValueProcessor( java.util.Date.class,new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss")); JSONArray fromObjectResult = JSONArray.fromObject(findAcLogInfo, jsonConfig);
相关推荐
解决办法 1.设置JSON-LIB让其过滤掉引起循环的字段。 Java代码 代码如下: JsonConfig config = new JsonConfig(); config.setIgnoreDefaultExcludes(false); config.setCycleDetectionStrategy...
JSONConfig库就是为了解决这一需求而诞生的。 JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Swift中,虽然标准库提供了JSONSerialization类来处理JSON,但直接使用可能涉及较多...
JSONConfig 是一个专门为 C# 开发的抽象配置文件类,旨在提供一种替代传统 XML 配置文件的方法,同时也支持 JSON 文件格式。这个库允许开发者在 XML 和 JSON 之间灵活切换,以便于管理和处理应用程序的配置数据。...
配置文件JsonConfig 是一个简单的配置框架,基于 json 和 .NET Framework 4.0+ 中可用的动态类型入门在您的项目中,添加对 JsonConfig.dll 的引用使用 json 格式的配置将名为“app.json.config”的文件添加到您的...
JsonConfig自述文件关于JsonConfig是一个易于使用的配置库,它允许C#/。NET应用程序使用基于JSON的配置文件,而不必使用繁琐的web.config / application.config xml文件。 它基于JsonFX和C#4.0动态功能。 允许将...
Exception in thread "main" Java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException 或者: Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang....
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和客户端之间的数据交互。Java中的json-lib库是处理JSON数据的一个常用工具,它提供了将Java对象转换为JSON字符串以及从JSON字符...
缺少这个包可能导致Could not initialize class net.sf.json.JsonConfig 使用json时候将会用到的一个jar包,发现这个包在网上提供的比较少.缺少这个包可能导致Could not initialize class net.sf.json.JsonConfig ...
去除死循环,解决StackOverflowError错误
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。在使用Hibernate这样的ORM框架时,由于其懒加载机制,可能会遇到JSON序列化时的死循环问题。这是因为CGLIB动态代理生成...
JSONArray.fromObject(map)报错:Could not initialize class net.sf.json.JsonConfig。ireport 需要高于2.1版本的包。于是就找了这些包。最后2.2.2适合
这样的设计可以使应用的配置更加灵活,特别是对于数据库(如MySQL)和缓存服务(如Redis)的动态配置,能够方便地在运行时更改或扩展设置。 在描述中提到的“不通过spring默认配置”,这意味着开发者可能选择不使用...
JsonConfig jsonConfig = new JsonConfig(); ``` 2. **注册JsonValueProcessor**:接下来,我们需要注册一个`JsonValueProcessor`来处理`java.util.Date`类型的值。 ```java jsonConfig....
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setIgnoreDefaultExcludes(false); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); jsonConfig.registerJsonValueProcessor...
标题 "关于Json-lib对日期型的转换解决方法" 涉及的是在Java开发中使用Json-lib库处理日期类型数据时遇到的问题以及解决方案。Json-lib是一个开源的Java库,用于将Java对象转换为JSON格式,反之亦然。在实际开发中,...
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY); jsonConfig.setRootClass(PropertyT.class); PropertyT[] mProperties = (PropertyT[]) JSONSerializer....
JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new PropertyFilter(){ public boolean apply(Object source, String name, Object value) { if(name.equals("parentGroup") || name.equals(...
4. **JsonConfig.cpp和JsonConfig.h**:这两个文件可能是一个示例或实际的项目,其中`JsonConfig.cpp`包含了使用cJSON库处理JSON的具体实现,而`JsonConfig.h`可能是头文件,包含了相关的类或函数声明。通过这些文件...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务和应用程序之间的数据传输,因为它易于读写,且对人类友好,同时也容易被机器解析和生成。JSON库在Java中扮演着重要的角色,使得...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输,因为它易于读写,且被大多数编程语言支持。在Java中,有多个库可以帮助我们处理JSON,其中之一就是...