XML 문자열을 이미 내 프로젝트에있는 클래스로 비 정렬해야하지만 XML의 특정 부분을 객체 목록에 비 정렬 화하는 방법을 알 수 없습니다. 나는이 XML이JAXB로 비 정렬 화
:
<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를 만들어야합니까?
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "User", propOrder = {"id", "name", "vaddresses"})
public class User {
@XmlElement
private int id;
@XmlElement
private String name;
@XmlElement
private VAddress vaddresses;
//...
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "VAddress", propOrder = {"addresses"})
public class VAddress {
@XmlElement
private List<Address> addresses;
//...
}
어쩌면 당신은 또한 주석 @XmlElementWrapper을 시도 할 수 있습니다 : (나는이 하나 있지만 성공하지 않고 시도했습니다 ...)
는'자바 코드에서'vadresses' 수 addresses'하지 않나요? – Claus