我想使用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来编组一些字段。非常感谢。
答案 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>