有一个带有XML响应类型的史诗REST API,它在root
元素上有一个未包装的对象集合。
看起来像这样:
<root>
<carName>Car1</carName>
<carNumber>1</carNumber>
<carType>SAV1</carType>
<carName>Car2</carName>
<carNumber>2</carNumber>
<carType>SAV2</carType>
<carName>Car3</carName>
<carNumber>3</carNumber>
<carType>SAV3</carType>
<count>3</count>
</root>
我试图将此作为List
子Car
对象解组:
@XmlRootElement
public Root {
@XmlElement
private List<Car> cars;
@XmlElement(name = "count")
private Integer count;
...
}
...其中Car
是简单的jaxb bean,每个原始类型字段都有@XmlElement(name = "...")
个注释。但是,count
以外的所有字段均为null
。
尝试使用这样的结构而不是无名@XmlElement
:
@XmlElements({
@XmlElement(name = "carName", type = String.class),
@XmlElement(name = "carNumber", type = Integer.class),
@XmlElement(name = "carType", type = String.class)
})
...现在我有一个9项数组而不是3项,其中,子Car
类的每个字段都存储为一个独立的数组项。
所以,问题是如何将这样的XML结构解组为精心设计的POJO List
?