反序列化 RestTemplate 中的地图列表
Deserialize List of Maps in RestTemplate
我试图在这里找到解决方案,但没有成功。
我有序列化一些数据和 returns xml 形式的外部服务:
<linked-list>
<linked-hash-map>
<entry>
<string>key1</string>
<string>value</string>
</entry>
<entry>
<string>key2</string>
<string>value2</string>
</entry>
</linked-hash-map>
<linked-hash-map>
....
</linked-hash-map>
</linked-list>
基本上是 returns 地图列表 List<Map<String, String>>
在我的应用程序中,我需要使用 Spring 的 RestTemplate 对其进行反序列化。
依靠默认的消息转换器,我得到的只是地图列表,但每个地图只包含一个带有键 "entry" 的元素,该值似乎是原始 (xml) 地图中的最后一个元素。
有没有办法使用一些现有的转换器来实现 "out of the box",或者我需要一个自定义转换器吗?并且还使用自定义,如何绕过 ex 的反序列化。 MappingJackson2XmlHttpMessageConverter
或 MappingJackson2HttpMessageConverter
?
最简单的解决方案是将此资源作为 xml 字符串获取,然后 convert/deserialize 使用例如 Xstream
XStream xStream = new XStream();
xStream.setMode(XStream.NO_REFERENCES);
List list = (List) xStream.fromXML(xmlString);
我试图在这里找到解决方案,但没有成功。
我有序列化一些数据和 returns xml 形式的外部服务:
<linked-list>
<linked-hash-map>
<entry>
<string>key1</string>
<string>value</string>
</entry>
<entry>
<string>key2</string>
<string>value2</string>
</entry>
</linked-hash-map>
<linked-hash-map>
....
</linked-hash-map>
</linked-list>
基本上是 returns 地图列表 List<Map<String, String>>
在我的应用程序中,我需要使用 Spring 的 RestTemplate 对其进行反序列化。
依靠默认的消息转换器,我得到的只是地图列表,但每个地图只包含一个带有键 "entry" 的元素,该值似乎是原始 (xml) 地图中的最后一个元素。
有没有办法使用一些现有的转换器来实现 "out of the box",或者我需要一个自定义转换器吗?并且还使用自定义,如何绕过 ex 的反序列化。 MappingJackson2XmlHttpMessageConverter
或 MappingJackson2HttpMessageConverter
?
最简单的解决方案是将此资源作为 xml 字符串获取,然后 convert/deserialize 使用例如 Xstream
XStream xStream = new XStream();
xStream.setMode(XStream.NO_REFERENCES);
List list = (List) xStream.fromXML(xmlString);