这是我得到的回复:
<ResponseBean>
<var>
<var>
<name>isOp</name>
<value>0</value>
</var>
<var>
<name>callStartTime</name>
<value>17-09-2024 18:41:29</value>
</var>
</var>
</ResponseBean>
但我需要得到这个回复:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<var value="1" name="isOp"/>
<var value="25-07-2024 18:48:44" name="callStartTime"/>
</response>
这是我的响应 bean 类:
package com.portal.dto;
import java.util.ArrayList;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "response")
public class ResponseBean {
private ArrayList<VarBean> var = new ArrayList<>(); // Initialize to avoid null issues
public ResponseBean() {
}
public ResponseBean(ArrayList<VarBean> var) {
this.var = var;
}
@XmlElement(name = "var") // Annotate getter to ensure the proper XML output
public ArrayList<VarBean> getVar() {
return this.var;
}
public void setVar(ArrayList<VarBean> var) {
this.var = var;
}
@Override
public String toString() {
return "ResponseBean [var=" + var + "]";
}
}
这是我的 var bean 类:
package com.portal.dto;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "var")
public class VarBean {
private String name;
private String value;
public VarBean() {
}
public VarBean(String name, String value) {
this.name = name;
this.value = value;
}
public VarBean(String name, int value) {
this.name = name;
this.value = String.valueOf(value);
}
@XmlAttribute
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@XmlAttribute
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "VarBean [name=" + name + ", value=" + value + "]";
}
}
您发布的响应是单个对象响应,而不是列表响应。 我建议你将它从 List 更改为单个对象。这将删除响应中出现的额外 var 标记。