IDMLlibを使用して IDML ファイルを POJO にロードしていますが、 Jackson JSONを使用して結果の Java オブジェクトを JSON にシリアル化しようとすると、無限再帰の問題が発生し続けます。
Caused by JsonMappingException: Infinite recursion (StackOverflowError)
(through reference chain:
de.fhcon.idmllib.api.elements.preferences.Preferences["layoutAdjustmentPreference"]
->de.fhcon.idmllib.api.elements.preferences.LayoutAdjustmentPreference["parent"]
... etc
->> 539 | serializeFields in com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
これは、解析中に複数の機会に発生します。
Idml.document -> Document.root -> Idml.document -> Document.root も同様のものです。
Jackson の ObjectMapper を使用して、POJO を JSON に変換しています。
Idml idml = new Idml("test.idml");
ObjectMapper mapper = new ObjectMapper();
String JSONstring = mapper.writeValueAsString(idml);
IDMLlib クラスはコンパイルされているため、変更を加えることはできません。
IDMLlib が返す Java オブジェクトを自分で作成せずに使用できる方法を知っている人はいますか?
編集:
全体を通して「ルート」と「親」の両方への参照が多数あるようです。基本的に私が求めているのは、オブジェクトを変更せずにシリアル化できる方法を誰かが知っているかどうかです