【发布时间】:2018-06-26 15:11:40
【问题描述】:
我正在尝试将 XML 解组为我期望应该具有特定字段的对象。但是,我不想将该对象编组为包含它的 XML。我喜欢的会是这样的:
@XmlRootElement(name = "User")
public class User {
private String name;
@XmlTransient
public String getName() {
return this.name
}
@XmlElement(name = "Name")
public void setName(String name) {
this.name = name
}
}
但是,由于注释冲突,这将不起作用,因为我无法将任何其他 XML 注释与 @XmlTransient 一起使用。我还尝试在字段本身而不是 getter 上添加 @XmlTransient 注释并设置了此选项:
XmlAccessorType(XmlAccessType.FIELD)
此外,我在 setter 上保留了 @XmlElement 注释,这在排除字段被编组方面完全没有任何作用。
我想保留@XmlElement 注释,因为我希望能够将具有不同名称的字段(这里只是大小写差异)翻译成我想要的任何字段。
我也无法删除 getter,因为我确实在应用程序中使用它。
鉴于此,我目前不知道我的选择是什么,除了编写一个适配器(我可以这样做,但如果有其他解决方案,我宁愿不使用自定义适配器,因为这个场地)。任何帮助将不胜感激。
【问题讨论】:
标签: java xml jaxb marshalling xmltransient