2011-03-03 68 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>