我想用JAXB將我的pojo轉換爲json,我的pojo有一對多關係,當我將pojo轉換爲json時,JAXB生成錯誤「在循環中檢測到循環對象圖,這將導致無限深的XML「。JAXB在對象圖中檢測到一個循環
我從網上讀到,這個問題可以在@XmlID和@XmlIDREF的幫助下解決,但有一個問題,我的Id屬性不是字符串類型,而是長。並且據我所知,@ XmlID只能用於String屬性。
其他網頁建議使用eclipselink MOXy,但MOXY無法生成json。
我想用JAXB將我的pojo轉換爲json,我的pojo有一對多關係,當我將pojo轉換爲json時,JAXB生成錯誤「在循環中檢測到循環對象圖,這將導致無限深的XML「。JAXB在對象圖中檢測到一個循環
我從網上讀到,這個問題可以在@XmlID和@XmlIDREF的幫助下解決,但有一個問題,我的Id屬性不是字符串類型,而是長。並且據我所知,@ XmlID只能用於String屬性。
其他網頁建議使用eclipselink MOXy,但MOXY無法生成json。
正如你在你的問題EclipseLink MOXy(我是技術主管)具有@XmlInverseReference
註釋來解決雙向關係的問題提到。從EclipseLink 2.4開始,MOXy可以生成/使用JSON。
更多信息
您的定義中存在循環引用問題。
嘗試將@XmlTransient
置於問題定義之上。
另外,關於XmlID和字符串類型,請參閱http://markmail.org/message/up6vrzjixxrvy5th。
我把`@ XmlTransient`但它不起作用,仍然循環 – 2013-05-22 13:23:55
爲我工作得很好..必須使用它的吸氣方法 – 2014-09-11 05:15:52
JAXB規範要求用@XmlID標記的屬性是一個String屬性。 MOXy impl允許使用long。
一個黑客繼續使用全JAXB兼容的實現將複製您的ID在一個字符串字段(連載)之前
不知道JAXB這麼多,但是XStream的讓你能夠使用不同的模式和一些如果這些元素已經顯示,這些模式的引用將會引用xml中元素的xpath地址(絕對或相對)。 (你可以做的Json使用XStream)
的EclipseLink 2.4 MOXY具有用於JSON結合本地支持:http://blog.bdoughan.com/2011/ 08/json-binding-with-eclipselink-moxy.html – 2012-04-02 18:41:16