2011-03-03 72 views
1

我想使用JAXB編組一個對象,問題是我想根據一些業務邏輯編組一些字段。例如,我有一個這樣的對象:JAXB Resteasy marshall想要的字段

Class Foo{ 
private name; 
private details; 
private url; 

//Getter and setter methods 

}

我想實現的是發送一個JSON響應只有名稱和URL字段中,像 {名:「someName」,網址: 「myUrl」},這樣當客戶端需要檢索更多信息時,他們可以請求在URL字段中發送的URI,並且JAXB此時將收集細節字段。 {name:「someName」,url:「myUrl」,詳情:「details」}。

我知道我可以使用一個包裝類,但它是kindda惱人的編寫包裝類爲相同的數據片段。所以我想知道是否有一種方法來配置JAXB來編組一些字段。非常感謝。

回答

1

默認情況下,JAXB將編組具有值的屬性。這應該給你你想要的行爲。

Foo foo = new Foo(); 
foo.setName("Jane Doe"); 
marshaller.marshal(foo, System.out); // results in <foo><name>Jane Doe</name></foo> 
foo.setDetails("Some Details"); 
marshaller.marshal(foo, System.out); // results in <foo><name>Jane Doe</name><details>Some Details</details></foo>