Java Unmrashal嵌套元素与JAXB
如何在Java Unmrashal嵌套元素与JAXB,java,xml,rest,spring-boot,jaxb,Java,Xml,Rest,Spring Boot,Jaxb,如何在mentalHealthDays元素的嵌套元素中提取数据 以下是我的XML: 这是我的密码: @SpringBootApplication public class DemoApplication { public static void main(String[] args) { try { File file = new File("C:\\Users\\JFarmer\\Projects\\
mentalHealthDays
元素的嵌套元素中提取数据
以下是我的XML:
这是我的密码:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
try {
File file = new File("C:\\Users\\JFarmer\\Projects\\demo\\xml_wife.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Response.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Response customer = (Response) jaxbUnmarshaller.unmarshal(file);
System.out.println(customer);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
此外,如果您能提供任何资源以更好地理解,我们将不胜感激
我可以将类中的前两个元素转换为变量,但是,我不知道如何将嵌套元素中的数据提取为变量。我还有多个同名的嵌套元素。您可以创建一个包含
MentalHealthDays
对象的列表
变量,只需确保您使用与要取消整理的xmlements
相同的名称命名属性即可:
响应元素
@XmlRootElement(name="response")
public class Response {
private String code;
private int fiscalYear;
private List<MentalHealthDays> mentalHealthDays;
@Override
public String toString() {
return "Response{" +
"code='" + code + '\'' +
", fiscalYear=" + fiscalYear +
", mentalHealthDays=" + mentalHealthDays +
'}';
}
@XmlElement
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@XmlElement
public int getFiscalYear() {
return fiscalYear;
}
public void setFiscalYear(int fiscalYear) {
this.fiscalYear = fiscalYear;
}
@XmlElement
public List<MentalHealthDays> getMentalHealthDays() {
return mentalHealthDays;
}
public void setMentalHealthDays(List<MentalHealthDays> mentalHealthDays) {
this.mentalHealthDays = mentalHealthDays;
}
}
在课堂上
MentalHealthDays
应该使用visitsUsed
而不是visitsUser
。应该添加visitsleet
。这对我来说很有效!谢谢,非常感谢。但我必须改变的一件事是,我必须使用private List mentalHealthDays=new ArrayList()代码>否则我会得到一个空指针例外欢迎您,如果您不介意,可以将ASWER标记为正确的
@XmlRootElement(name="response")
public class Response {
private String code;
private int fiscalYear;
private List<MentalHealthDays> mentalHealthDays;
@Override
public String toString() {
return "Response{" +
"code='" + code + '\'' +
", fiscalYear=" + fiscalYear +
", mentalHealthDays=" + mentalHealthDays +
'}';
}
@XmlElement
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@XmlElement
public int getFiscalYear() {
return fiscalYear;
}
public void setFiscalYear(int fiscalYear) {
this.fiscalYear = fiscalYear;
}
@XmlElement
public List<MentalHealthDays> getMentalHealthDays() {
return mentalHealthDays;
}
public void setMentalHealthDays(List<MentalHealthDays> mentalHealthDays) {
this.mentalHealthDays = mentalHealthDays;
}
}
public class MentalHealthDays {
String type;
int visitsAllowed;
int visitsUser;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getVisitsAllowed() {
return visitsAllowed;
}
public void setVisitsAllowed(int visitsAllowed) {
this.visitsAllowed = visitsAllowed;
}
public int getVisitsUser() {
return visitsUser;
}
public void setVisitsUser(int visitsUser) {
this.visitsUser = visitsUser;
}
@Override
public String toString() {
return "MentalHealthDays{" +
"type='" + type + '\'' +
", visitsAllowed=" + visitsAllowed +
", visitsUser=" + visitsUser +
'}';
}
}