JAXB Resteasy编组了所需的字段

时间:2011-03-03 16:42:48

标签: jaxb marshalling resteasy

我想使用JAXB编组一个对象,问题是我想根据一些业务逻辑来编组一些字段。例如,我有一个像这样的对象:

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

//Getter and setter methods

}

我想要实现的是发送一个只有name和url字段的JSON响应,比如 {name:“someName”,url:“myUrl”},这样当客户端需要检索更多信息时,他们可以请求在URL字段中发送的uri,这次JAXB将编组详细信息字段。 {名: “someName”,URL: “myUrl”,细节: “详细信息”}。

我知道我可以使用包装类,但是为同一条数据编写包装类很烦人。所以我想知道是否有办法配置JAXB来编组一些字段。非常感谢。

1 个答案:

答案 0 :(得分: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>