反序列化RestTemplate中的地图列表

时间:2015-02-10 11:19:12

标签: xml spring rest spring-mvc

我试图在这里找到解决方案,但没有成功 我有外部服务,序列化一些数据并以形式返回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>

基本上它会返回地图列表List<Map<String, String>>

在我的应用程序中,我需要使用Spring的RestTemplate对其进行反序列化 依赖于默认的消息转换器,我得到的是地图列表,但每个地图只包含一个带有键的元素&#34; entry&#34;并且值似乎是原始(xml)映射中的最后一个元素。

有没有办法让这个工作&#34;开箱即用&#34;使用一些现有的转换器,还是需要定制?并且还使用自定义,如何绕过ex反序列化。 MappingJackson2XmlHttpMessageConverterMappingJackson2HttpMessageConverter

1 个答案:

答案 0 :(得分:0)

好的,最简单的解决方案是将此资源作为xml字符串获取,然后使用例如Xsream转换/反序列化

XStream xStream = new XStream();
xStream.setMode(XStream.NO_REFERENCES);
List list = (List) xStream.fromXML(xmlString);