我在基于 JDK 5 的应用程序上使用 JAXB。
XML 编组是一个附带功能,因此 POJO 模型上的注释被排除在外。应该排除的字段是transient
(java 关键字)。
有没有办法配置Marshaler
忽略这些字段。
这是我用来将 POJO 序列化为 XML 的代码:
JAXBContext context = JAXBContext.newInstance(BasePOJO.class, target.getClass());
JAXBElement<WsResponse> model = new JAXBElement<BasePOJO>(
new QName(target.getClass().getSimpleName()),
(Class<BasePOJO>) target.getClass(),
(BasePOJO)target
);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(model, os);
我需要序列化的示例 POJO:
public class APOJO extends BasePOJO {
private Long id;
private String desc;
private transient String aFieldToIgnore;
//and the accessors[...]
}