2012-12-19 15 views
5

Czy istnieje sposób na deserializację następującego xml do mapy posiadania listy przedmiotów za pomocą Jacksona?Jackson: XML na mapę z deserializacją listy

<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> 

Próbowałem z

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

i dostał poniższej mapie. Brak pierwszego elementu na liście.

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

Nie chcę używać POJO do przechowywania danych zamówienia. Pomysł polega na użyciu mapy i listy jako ogólnej struktury danych. – Raj

+0

Ten "problem" występuje również, gdy używa się 'mapper.readTree (xml);' , który można mieć nadzieję, buduje mapę drzewa –

Odpowiedz

0

Utworzono niestandardowy deserializator poprzez rozszerzenie UntypedObjectDeserializer w celu wykonania tego zadania.

+2

można rozwinąć w tej odpowiedzi? Byłoby to bardzo docenione –

Powiązane problemy