jackson处理/抛出Cyclic异常,如 net.sf.json.JSONException:层次结构中有一个循环!当它检测到java对象中的循环时,抛出json-lib在json转换。如果是这样,我们如何处理它。
json-lib中抛出的错误如下
1169 SEVERE: Servlet.service() for servlet JSONControllerServletGZIP threw exception
1170 net.sf.json.JSONException: There is a cycle in the hierarchy!
1171 at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsArray(CycleDetectionStra
1172 at net.sf.json.JSONArray._fromCollection(JSONArray.java:749)
1173 at net.sf.json.JSONArray.fromObject(JSONArray.java:165)
1174 at net.sf.json.JSONObject._processValue(JSONObject.java:2132)
1175 at net.sf.json.JSONObject._setInternal(JSONObject.java:2177)
1176 at net.sf.json.JSONObject.setValue(JSONObject.java:1005)
1177 at net.sf.json.JSONObject._fromMap(JSONObject.java:886)
1178 at net.sf.json.JSONObject.fromObject(JSONObject.java:248)
提前致谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
不,杰克逊没有跟踪循环实例,除了捕获的自引用的特殊情况。正如所建议的,目前处理此问题的最佳方法是使用注释,至少在您有父/子样式引用的情况下。