杰克逊会抛出Cyclic异常吗?

时间:2012-02-02 11:59:02

标签: java json jackson json-lib

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)

提前致谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

不,杰克逊没有跟踪循环实例,除了捕获的自引用的特殊情况。正如所建议的,目前处理此问题的最佳方法是使用注释,至少在您有父/子样式引用的情况下。