2012-12-13 28 views
0

我有一個jaxb註釋類中的方法,我想編組一個值,當且僅當它是編組爲JSON與球衣1.16 - 這是使用傑克遜1.9下面。我希望在得到這個做的方式是這樣使用@XmlTransient從JAXB和@JsonProperty傑克遜:使用球衣混合傑克遜核心註釋和jaxb註釋

@XmlRootElement 
public class SomeClass { 

    // Other XmlElement annotated methods 

    @XmlTransient 
    @JsonProperty(value="type") 
    public String getType(){ 
     return this.type; 
    } 

} 

...但它似乎沒有馬歇爾在所有。沒有遇到錯誤。

+0

你會如此友善給代碼'不marshall'? –

+0

我解決了這個問題。問題是我使用的是自然JSON處理器,它似乎忽略了JsonProperty註釋,我相信這是真實的,因爲我相信Jersey在使用自然JSON處理器時轉換爲XML,然後轉換爲JSON。 編組代碼實際上是隱藏的,因爲它由Jersey資源編組。 – Brian

回答

0
  1. 我需要切換澤西使用POJOMappingFeature,它使用傑克遜。
  2. 我需要不包括XmlTransient,否則它看起來像元素被忽略。在某些情況下,我相信getType仍然可以在XML中被序列化,但是,我在我的實際類中使用了propOrder,並且因爲XmlElement沒有在getType上聲明,所以這不是問題。對於那些可能是問題的其他情況,我認爲你需要使用類似jsonGetType的東西,以確保它沒有默認序列化。