2011-10-21 34 views
1

嗨我有一個java bean,我需要將其序列化爲json。爲此,我使用的傑克遜處理器非常強大。但我也需要將java bean轉換爲XML。 這可以使用傑克遜處理器來實現嗎?如果是,那麼請提供我可以獲得示例的鏈接。 謝謝!傑克遜處理器爲java bean json xml序列化

+0

如果您有興趣探索使用EclipseLink JAXB(MOXy)來處理POJO到JSON和XML的映射,請讓我知道:http://blog.bdoughan.com/2011/08/binding-to -json-XML的地理編碼,example.html的 –

回答

0

是的,這是可能的。您需要使用JAXB批註註釋您的Java bean,這將爲您提供XML編組和解組支持。然後,使用Jackson's support進行JAXB註釋,您可以在Java和JSON之間來回切換。

2

如果您想將Jackson和JSON保留在您的pojos中,您可以創建一個翻譯層,該層可以轉換爲JAXB對象並使用純JAXB(在此情況下,JAXB是一種可能的實現方式)。如果您的域對象直接映射到呈現的JSON,或者您可以使用mixins/PropertyNamingStrategy,則在您的pojos中不需要註釋。我不確定這是否適用於您的情況,但我知道很多環境都在爲此努力。

1

肯定!傑克遜顯然擁有對JSON的一流支持;但也有簡單的擴展模塊來做「mini-JAXB」:jackson-xml-databind。由於傑克遜對JAXB註釋的支持(或者沒有,如果你更喜歡Jackson自己的註釋& xml模塊的其他附加註釋),使用Jackson功能完全可以做到JSON和XML。

我主要推薦這種情況,其中XML支持是遺留問題(這是大多數新服務所做的)。如果XML是主要關注點,那麼使用JAXB可能更有意義。 但即使如此,我建議不要使用從XML到JSON的轉換層;我曾見過的數據格式圖層轉換時遇到了問題,IMO完全是錯誤的地方。這也是爲什麼傑克遜不會嘗試將JSON轉換爲XML(反之亦然)的原因。相反,它只支持將POJO轉換爲外部數據格式。