1

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

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

//Getter and setter methods

}

我想要实现的是发送一个仅包含名称和 url 字段的 JSON 响应,例如 {name:"someName",url:"myUrl"},这样当客户端需要检索更多信息时,他们可以请求在URL 字段,这次 JAXB 将编组 details 字段。{name:"someName",url:"myUrl",details:"details"}。

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

4

1 回答 1

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>
于 2011-03-03T17:04:55.883 回答