我是使用JAXB的新手,我现在正在努力解决问题。也许你可以帮助我。
我有以下代码:
@XmlRootElement
public class Students implements Serializable{
private static final long serialVersionUID = 1L;
private List<Person> personList;
private int id;
// getters and setters for the attributes
}
和
@XmlRootElement
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int sex;
//getters and setters for the attributes
}
当我尝试使用JAXB封送学生时,我在结果字符串中只有id-Element。我没有名单(人)。这里的问题在哪里?
答案 0 :(得分:6)
要整理List
属性,您无需执行任何特殊操作。只需确保满足以下条件之一:
如果您正在使用JAXB参考实现并且具有List
属性的getter但没有setter,那么您需要使用@XmlElement
@XmlRootElement
public class Students implements Serializable{
private static final long serialVersionUID = 1L;
private List<Person> personList;
@XmlElement
public List<Person> getPersonList() {
return personList;
}
}
如果您没有公共访问者,请确保使用字段访问权限:
@XmlRootElement
@XmlAccessorType(XmlAcceesType.FIELD)
public class Students implements Serializable{
private static final long serialVersionUID = 1L;
private List<Person> personList;
}
如果你有List
属性的getter和setter,那么你不需要做任何事情:
@XmlRootElement
public class Students implements Serializable{
private static final long serialVersionUID = 1L;
private List<Person> person = new ArrayList<Person>();
public List<Person> getPersonList() {
return person;
}
public void setPersonList(List<Person> personList) {
this.person = personList;
}
}
了解更多信息
答案 1 :(得分:0)
嗯,尝试将类Person标记为@XmlType(我认为不是必需的),将Student和Person类的所有字段标记为@XmlElement