gpt4 book ai didi

java - 为什么我的列表没有在 JAXB 中序列化?

转载 作者:数据小太阳 更新时间:2023-10-29 02:22:36 25 4
gpt4 key购买 nike

我是 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 编码 Students 时,结果字符串中只有 id-Element。我没有名单(人)。问题出在哪里?

最佳答案

编码 List 属性不需要做任何特别的事情。只需确保以下其中一项为真:

如果您正在使用 JAXB 引用实现并且有 List 属性的 getter 但没有 setter,那么您将需要使用 @XmlElement 注释 getter

@XmlRootElement
public class Students implements Serializable{

private static final long serialVersionUID = 1L;

private List<Person> personList;

@XmlElement
public List<Person> getPersonList() {
return personList;
}

}

如果您没有公共(public)访问器,请确保您使用的是字段访问:

@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;
}

}

了解更多信息

关于java - 为什么我的列表没有在 JAXB 中序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com