欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > net.sf.json.JSONException: There is a cycle in the hierarchy!

net.sf.json.JSONException: There is a cycle in the hierarchy!

2024/11/30 8:44:29 来源:https://blog.csdn.net/xiejunna/article/details/142516407  浏览:    关键词:net.sf.json.JSONException: There is a cycle in the hierarchy!

在用com.google.gson.JsonArray把list对象转jsonarray后,把jsonarray放入了新的json内时,异常net.sf.json.JSONException: There is a cycle in the hierarchy! 意思是:将Java对象转换为JSON时发现了层级(循环)引用。即Java对象之间存在循环引用,例如,对象A包含对对象B的引用,而对象B也包含对对象A的引用,这会导致在转换过程中形成一个无法解析的循环结构。

出现问题的代码如下

import com.google.gson.Gson;
import com.google.gson.JsonArray;net.sf.json.JSONObject dateItem = new net.sf.json.JSONObject();List<Map<String, Object>> list = dieCutDao.selectMysql(map);if (null == list || list.isEmpty()) {return;}logger.warn("{}", list.size());Gson gson = new Gson();JsonArray jsonArray = gson.toJsonTree(list).getAsJsonArray();dateItem.put("count", jsonArray.size());dateItem.put("data", jsonArray);// 异常在这一行发生

调整后代码如下

import com.google.gson.Gson;
import com.google.gson.JsonArray;net.sf.json.JSONObject dateItem = new net.sf.json.JSONObject();List<Map<String, Object>> list = dieCutDao.selectMysql(map);if (null == list || list.isEmpty()) {return;}logger.warn("{}", list.size());Gson gson = new Gson();JsonArray jsonArray = gson.toJsonTree(list).getAsJsonArray();//这里把com.google.gson.JsonArray对象转为字符串,没有异常了String jsonArrayStr = jsonArray.toString();dateItem.put("count", jsonArray.size());dateItem.put("data", jsonArray);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com