使用JAXB编组时,在输出中会创建重复的元素。以下是我的根类。
@XmlRootElement(name="rules")
public class RuleList {
@XmlElement(name="rule")
private List<Rule> ruleList;
public List<Rule> getRules() {
return ruleList;
}
public void setRules(List<Rule> ruleList) {
this.ruleList = ruleList;
}
}
这将创建重复项。例如,如果我在列表中有2个条目,它将在输出xml中创建4个条目。
答案 0 :(得分:0)
RuleList的getRules(..)方法正在复制记录。 将其更改为仅rules(),即删除 get 即可解决问题。
答案 1 :(得分:0)
在您的课程中添加以下注释:
@XmlAccessorType(XmlAccessType.FIELD)
否则,您的JAXB实现将同时看到getter / setter对和带注释的字段,并假定您的类具有两个属性,并且将同时使用它们。
(您也可以将此注释添加到包含域模型类的软件包中,方法是将其放入包中的package-info.java
文件中-则不必将其添加到每个类中)