2015-02-10 51 views
0

我試圖在這裏找到解決方案,但沒有成功。
我有一些串行數據和形式返回XML外部服務:反序列化RestTemplate中的地圖列表

<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到反序列化。
依靠默認的消息轉換器,我得到的是地圖列表,但每個地圖只包含一個帶有「入口」鍵的元素,並且該值似乎是原始(xml)地圖中的最後一個元素。

有沒有一種方法可以使用一些現有的變頻器「開箱即用」,還是需要定製的變頻器?並且還使用自定義,如何繞過反序列化ex。 MappingJackson2XmlHttpMessageConverterMappingJackson2HttpMessageConverter

回答

0

好,最簡單的解決辦法是使用例如抓取此資源作爲XML字符串,然後轉換/反序列化Xsream

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