我需要将XML字符串解组到一个已存在于我的项目中的类中,但我无法弄清楚如何将XML的某个部分解组到对象列表中。让我有一些代码解释:解组和JAXB
我有这样的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和名被正确处理,但同样不与地址发生:
- 输出
User:
Id: 123
Nome: John Doe
Addresses: null
我该如何解决这个问题?是否有一些我可以使用的JAXB注释?如何?或者我需要创建一些类型的XmlAdapter? (我已经试过这一个,但没有成功...)
不应该'addresses'是在Java代码中'vadresses'? – Claus