верблюд вернул к списку карт с массивами / списком атрибутов - PullRequest
0 голосов
/ 14 января 2020

Мой ввод 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

...