我發現了很多關於Gson循環引用的文章,但我找不到一個優雅的解決方案。是否有關於Gson「循環引用」的解決方案?
據我所知,一些解決方案是:
- 設置導致循環引用爲「短暫」的屬性。
- 排除某些註釋的屬性。
但作爲一個普遍的問題,是否有一些共同的策略來解決這個問題?
我發現了很多關於Gson循環引用的文章,但我找不到一個優雅的解決方案。是否有關於Gson「循環引用」的解決方案?
據我所知,一些解決方案是:
但作爲一個普遍的問題,是否有一些共同的策略來解決這個問題?
據我所知在Gson中沒有針對循環引用的自動化解決方案。 我知道的唯一能夠自動處理循環引用的JSON生成庫是XStream(使用Jettison後端)。編輯:傑克遜還支持處理與@JsonIdentityInfo
註釋的循環引用;所以雖然不是自動的(你確實需要標記需要對象ID處理的引用),但它確實可以解決大多數情況。
正確,Gson沒有循環引用的自動解決方案,也沒有提供除標記Java之外的序列化解決方案字段被跳過和/或寫入自定義序列化代碼。另外,傑克遜爲序列化和反序列化問題提供了基於註解的解決方案。請參閱第7點http://www.cowtowncoder.com/blog/archives/2010/11/entry_434.html –
謝謝,我通過間接排除字段解決了問題。當我有空時,我會學習XStream。 –
另外一個用於XStream。我發現的唯一可行的解決方案似乎工作。 –
一個奇怪的遊戲,唯一贏的方法就是不玩。重新分區,所以你沒有循環引用。 – DwB
僅僅關注序列化,還是在反序列化過程中建立正確的鏈接? –
是的! 看看這個帖子包括 [GraphAdapterBuilder示例] [1] [1]:http://stackoverflow.com/questions/10036958/the-easiest-way-to-刪除雙向遞歸關係 – ouba64