2012-12-19 3 views
5

Jackson을 사용하여 항목 보유 목록으로 다음 XML을 deserialize 할 수 있습니까? 잭슨 : 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

해당 답변을 확장 할 수 있습니까? 대단히 감사하겠습니다. –