【发布时间】:2017-02-21 08:51:44
【问题描述】:
我很高兴收到一个奇怪的 xml 响应 - xml:
<params>
<param>
<value><array><data>
<value><string>UstId_1</string></value>
<value><string>xxx</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>ErrorCode</string></value>
<value><string>200</string></value>
</data></array></value>
</param>
</params>
基本上,最内部的<value><string> 构造通常是
<UstId_1>xxx</UstId_1>
和
<ErrorCode>200</ErrorCode>
分别使xml的消息归结为
<params>
<UstId_1>xxx</UstId_1>
<ErrorCode>200</ErrorCode>
</params>
但是这个 xml 是不同的。它是由税务机关退回的,所以没有办法让他们改变它。
我目前有这个pojo
@JacksonXmlRootElement(localName = "params")
public class Params {
@JacksonXmlProperty(localName = "param")
private List<Param> paramList = new ArrayList<>();
//getter setter ...
}
和参数:
public class Param {
@JacksonXmlProperty(localName = "value")
private Object value;
@JacksonXmlProperty(localName = "array")
private Object array;
@JacksonXmlProperty(localName = "data")
private Object data = new ArrayList<>();
//getter setter....
}
但这只会返回来自<value><string> 的第二个条目,例如
xxx
和
200
这也是一个非常奇怪的结构
Params{paramList=[Param{value={array={data={value={string=xxx}}}}, array=null, data=null}
...
我将如何正确地为该 xml 设置一个 pojo 以使其能够做到
res.getUstId1();
【问题讨论】:
-
在您的示例 XML 中,最后一行有未闭合的 标记。是文件的一部分还是文件中的错误?
-
对不起,复制/粘贴错误,有很多 标签...