编组时是否可以在不使用@XmlTransient 的情况下忽略某些元素
JAXBContext jc = JAXBContext.newInstance(Customer.class); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
没有的原因是因为其他使用 xml bean 的开发人员可能想要编组这些元素。
伙计们,
我认为简单的答案是创建另一类没有这些字段的“客户”模型
class CustomerA{
@XmlElement
private String name;
//@XmlElement // Element that I do not want to keep
//Private Date dob;
}
我需要做的就是将值设置到 CustomerA 中,并且由于 java 通过对象的值引用传递,我只需要一点引用字节。
我相信这是最便宜和最简单的方法,我可以控制该域。
如果要从 XML 中排除某些字段,可以将其值设置为null
.
null
字段未编组为 XML
示例:
DTO:
class Customer
{
private String a;
// getters/setter
}
逻辑:
Customer customerInstance = ...; // some business logic with Customer instance
//... business logic
customerInstance.setA(null); // set null before marshalling
// marshalling
a
XML 中将不存在属性