1

jackson は net.sf.json.JSONException のような Cyclic 例外を処理/スローしますか: 階層に循環があります! json に変換する Java オブジェクトでサイクルを検出すると、json-lib でスローされます。もしそうなら、どうすれば対処できますか。

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)

前もって感謝します。

4

2 に答える 2

1

@JsonBackReference@JsonManagedReferenceが必要です。

于 2012-02-02T15:53:05.337 に答える
0

いいえ、キャッチされた自己参照の特別なケースを除いて、Jackson は循環インスタンスを追跡しません。提案されているように、少なくとも親/子のスタイル参照がある場合は、これに対処するための現在の最善の方法は注釈を使用することです。

于 2012-02-02T16:23:21.983 に答える