【发布时间】:2014-02-11 12:15:20
【问题描述】:
我需要将 XML 字符串解组到项目中已经存在的类中,但我不知道如何将 XML 的某个部分解组为对象列表。让我用一些代码解释一下:
我有这个 XML:
<user>
<id>123</id>
<name>John Doe</name>
<vaddresses>
<address>
<street>Street XYZ</street>
</address>
<address>
<street>Street ABC</street>
</address>
</vaddresses>
</user>
我有这些课程:
- 用户
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "User", propOrder = {"id", "name", "addresses"})
public class User {
@XmlElement
private int id;
@XmlElement
private String name;
@XmlElement
private List<Address> addresses;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
- 地址
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Address", propOrder = {"street"})
public class Address {
@XmlElement
private String street;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
当我尝试将 XML 解组到这些类中时,字段 id 和 name 被正确处理,但 addresses:
- 输出
User:
Id: 123
Nome: John Doe
Addresses: null
我该如何解决这个问题?是否有一些我可以使用的 JAXB 注释?如何?还是我需要创建某种类型的 XmlAdapter? (我试过这个但没有成功......)
【问题讨论】:
-
Java 代码中的
addresses不应该是vadresses吗?
标签: java xml jaxb unmarshalling