我正在编写一个 JAXB 类来解析下面的 xml。我总是得到 trackinginfoList 的空值并且响应状态有值(value),我不确定这段代码有什么问题,你能告诉我吗?
@XmlRootElement(name = "CargoTrackingRespone")
public class CargoTrackingRespone {
private List<TrackingInfo> trackingInfoList;
private ResponseStatus responseStatus;
@XmlElements({@XmlElement(name = "TrackingInfo", type = TrackingInfo.class)} )
@XmlElementWrapper(name = "TrackingInfoList" )
public List<TrackingInfo> getTrackingInfoList() {
return trackingInfoList;
}
public void setTrackingInfoList(List<TrackingInfo> trackingInfoList) {
this.trackingInfoList = trackingInfoList;
}
@XmlElement(name = "Status")
public ResponseStatus getResponseStatus() {
return responseStatus;
}
public void setResponseStatus(ResponseStatus responseStatus) {
this.responseStatus = responseStatus;
}
}
XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<CargoTrackingRespone>
<TrackingInfo>
<TrackID>12345</TrackID>
<TrackStatus>
<Code>ERROR</Code>
<Description>No tracking information found</Description>
<StatusUpdateDateTime>2014-01-14T14:51:11.551-06:00</StatusUpdateDateTime>
</TrackStatus>
</TrackingInfo>
<Status>
<Code>ERROR</Code>
<Description>No shipment information available</Description>
<ReasonCode>No Shipment.</ReasonCode>
</Status>
</CargoTrackingRespone>
最佳答案
您可以将该属性注释为以下以匹配您的 XML:
@XmlElement(name = "TrackingInfo")
public List<TrackingInfo> getTrackingInfoList() {
了解更多信息
关于java - JAXB编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21128089/