Мой ввод 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>
Я нашел статью, , как обойти проблему Джексона, касающуюся преобразования xml в список карт с массивами / списками . Я заставил его работать, преобразовав тело сообщения в строку верблюда, а затем преобразовав его в список карт внутри моего процессора. Есть ли способ заставить верблюда конвертировать таким образом, вместо того, чтобы конвертировать его 2 раза? Я подозреваю, что преобразование внутри моего процессора не так эффективно, как на верблюде.
Вот соответствующая часть моего строителя маршрута:
JacksonXMLDataFormat format = new JacksonXMLDataFormat();
format.setUseList(true);
SimpleModule module = new SimpleModule().addDeserializer(Object.class, Issue205FixedUntypedObjectDeserializer.getInstance());
XmlMapper xmlMapper = (XmlMapper) new XmlMapper().registerModule(module);
format.setUnmarshalType(Issue205FixedUntypedObjectDeserializer.class); //this doesn't work
...
//.unmarshal(format)
// this is a workaround for unmarshal unable to handle arrays
.convertBodyTo(String.class)
.process(orderProcessor)
Может кто-нибудь указать мне правильное направление? Любая помощь приветствуется. :)
Спасибо.
java 11 верблюд 22.0 Джексон 2.10.1