2011-09-08 89 views
2

我注意到傑克遜有內聯/解開元素掛起功能,在這裏看到:http://wiki.fasterxml.com/JacksonRelease19JAXB是否支持內聯元素?

的想法是,你可能有兩類:

class A { 
    String y; 
    String z; 
} 
class B { 
    String x; 
    A a; 
} 

而且要產生JSON,如:

{ 
    "x":"...", 
    "y":"...", 
    "z":"..." 
} 

的問題是,是否JAXB支持一些類似的功能(或者是預計在未來的任何時候)?我認爲正常的繼承可以做到這一點,但由於Java不支持多重繼承,這並不總是可行的(更不用說關係可能更多是一個has-a而不是is-a)。

回答

2

注:我是EclipseLink JAXB (MOXy)鉛和JAXB 2(JSR-222)專家組的成員。

莫西目前支持在其XML綁定這一概念,並支持其JSON通過@XmlPath擴展綁定(見下文):

package forum7352753; 

import org.eclipse.persistence.oxm.annotations.XmlPath; 

class B { 
    String x; 
    A a; 

    public String getX() { 
     return x; 
    } 

    public void setX(String x) { 
     this.x = x; 
    } 

    @XmlPath(".") 
    public A getA() { 
     return a; 
    } 

    public void setA(A a) { 
     this.a = a; 
    } 

} 

改進請求

對於更多天道酬勤ormation

+0

什麼是MOXY到JAXB的關係?直到現在我還沒有聽說過moxy ...... – Kevin

+0

JAXB是一個規範(JSR-222),我是專家組的成員。很多人都熟悉Java SE 6中包含的參考實現,但還有其他的包括EclipseLink MOXy和Apache JaxMe。 MOXy還包含擴展,如基於XPath的映射。如果您有興趣,我的博客(http://blog.bdoughan.com)包含JAXB和MOXy示例。 –

+0

好吧,爲了獲得所需的功能,我不得不換掉標準的jaxb實現,然後使用擴展功能......嗯......有沒有關於標準化這個功能或類似的東西的討論? – Kevin