2012-06-06 37 views
1

我正在使用JAXB + Jettison來提供多格式RESTful(無模式)服務。 @XmlTransient註釋適用於那些我根本不想序列化的屬性。但這還不夠。JAXB:如何從運行時編組中排除特定字段?

如何在運行時排除特定字段

我可以以某種方式預先初始化封送處理上下文並定義要排除的字段嗎?

我需要那個基於當前用戶的角色有選擇地序列化對象字段。

+2

「我如何在運行時排除特定的字段?」 - 你能否給我們提供一個你想要這樣做的理由?如果你想要可選的屬性,這是可能的,這將起到相同的作用。 –

+0

嗨,傑夫!感謝您的輸入!我更新了我的問題(最後一行)。我希望它清楚地表明'可選的'註釋值不是我正在尋找的。 – forker

回答

2

我之前做過類似的工作,在層次結構中有許多DTO,從精益到全脂,每種都有不同的JAXB映射。但是,這隻適用於少數角色。

MOXy確實允許運行時綁定更改,似乎符合您的使用案例。

但是,要小心篡改您的服務合同,它可能會導致怪異的活錯誤,這是一種痛苦追蹤。

+0

謝謝傑夫!是的,DTO的'n *角色'就是我想要避免的。我實際上使用MOXY來解析圓形對象圖,並且我正在嘗試在它的文檔中針對subj的google - 沒有找到任何東西。你能建議一些關鍵字或特定的文檔鏈接? – forker

+0

以下是一個示例:http://blog.bdoughan.com/2011/06/moxy-extensible-models-refresh-example.html –

+0

謝謝!顯然這個http://wiki.eclipse.org/EclipseLink/Examples/MOXy/RefreshMetadata是你提供的官方副本。 – forker

相關問題