2011-02-09 55 views
4

我想用JAXB將我的pojo轉換爲json,我的pojo有一對多關係,當我將pojo轉換爲json時,JAXB生成錯誤「在循環中檢測到循環對象圖,這將導致無限深的XML「。JAXB在對象圖中檢測到一個循環

我從網上讀到,這個問題可以在@XmlID和@XmlIDREF的幫助下解決,但有一個問題,我的Id屬性不是字符串類型,而是長。並且據我所知,@ XmlID只能用於String屬性。

其他網頁建議使用eclipselink MOXy,但MOXY無法生成json。

+0

的EclipseLink 2.4 MOXY具有用於JSON結合本地支持:http://blog.bdoughan.com/2011/ 08/json-binding-with-eclipselink-moxy.html – 2012-04-02 18:41:16

回答

1

您的定義中存在循環引用問題。

嘗試將@XmlTransient置於問題定義之上。

另外,關於XmlID和字符串類型,請參閱http://markmail.org/message/up6vrzjixxrvy5th

+0

我把`@ XmlTransient`但它不起作用,仍然循環 – 2013-05-22 13:23:55

+2

爲我工作得很好..必須使用它的吸氣方法 – 2014-09-11 05:15:52

0

JAXB規範要求用​​@XmlID標記的屬性是一個String屬性。 MOXy impl允許使用long。

一個黑客繼續使用全JAXB兼容的實現將複製您的ID在一個字符串字段(連載)之前

不知道JAXB這麼多,但是XStream的讓你能夠使用不同的模式和一些如果這些元素已經顯示,這些模式的引用將會引用xml中元素的xpath地址(絕對或相對)。 (你可以做的Json使用XStream)

相關問題