2012-12-19 56 views
5

有沒有一種方法反序列化以下xml到地圖持有使用傑克遜的項目列表?傑克遜:XML映射與列表反序列化

<order> 
    <number>12345678</number> 
    <amount>100.10</amount> 
    <items> 
     <item> 
      <itemId>123</itemId> 
      <amount>100.0</amount> 
      <itemName>Item Name1</itemName> 
     </item> 
     <item> 
      <itemId>234</itemId> 
      <amount>200.00</amount> 
      <itemName>Item Name1</itemName> 
     </item> 
    </items> 
</order> 

我試着用

XmlMapper mapper = new XmlMapper(); 
LinkedHashMap map = (LinkedHashMap)mapper.readValue(xml, Object.class); 

,並得到了以下地圖。列表中的第一項缺失。

{ 
    order={ 
     number=12345678, 
     amount=100.1, 
     items={ 
      item={ 
       amount=200.0, 
       itemName=ItemName2, 
       itemId=234 
      } 
     } 
    } 
} 
+0

我不想使用POJO來保存訂單數據。這裏的想法是使用Map和List作爲通用的數據結構。 – Raj

+0

當一個人使用 'mapper.readTree(xml);' 哪一個人可能希望建立一個樹圖 –

回答

0

通過擴展UntypedObjectDeserializer來完成這項工作,創建了一個自定義的反序列化器。

+2

你可以擴展這個答案嗎?這將不勝感激 –