Ton*_*780 3 java xml jaxb xml-serialization
我是使用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
}
Run Code Online (Sandbox Code Playgroud)
和
@XmlRootElement
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int sex;
//getters and setters for the attributes
}
Run Code Online (Sandbox Code Playgroud)
当我尝试用JAXB封送学生时,我只在结果字符串中有id-Element.我没有名单(人).这里的问题在哪里?
编组List属性没有什么特别之处.只需确保满足以下条件之一:
如果您正在使用JAXB参考实现并且具有该List属性的getter 但没有setter,那么您将需要使用getter注释getter@XmlElement
@XmlRootElement
public class Students implements Serializable{
private static final long serialVersionUID = 1L;
private List<Person> personList;
@XmlElement
public List<Person> getPersonList() {
return personList;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您没有公共访问者,请确保使用字段访问权限:
@XmlRootElement
@XmlAccessorType(XmlAcceesType.FIELD)
public class Students implements Serializable{
private static final long serialVersionUID = 1L;
private List<Person> personList;
}
Run Code Online (Sandbox Code Playgroud)
如果你有一个getter和setter List属性,那么你不需要做任何事情:
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
欲获得更多信息