Верблюжий отдых JSON десериализовать с START_ARRAY - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь преобразовать application/json из службы отдыха в список POJO. Но я не могу

Мой ввод - это список Event в camel:put Я не могу ссылаться на список.

<dataFormats>
  <json id="eventJsonList" prettyPrint="true" library="Jackson" useList="true"
    unmarshalTypeName="example.model.Event" />
</dataFormats>

<camel:rest path="events" consumes="application/json" produces="application/json">
  <camel:put 
    uri="/save">
    <to uri="direct:save-events" />
  </camel:put>
</camel:rest>

с использованием Camel 2.22

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Свойство bindingMode="off" должно быть отключено, а тело должно быть преобразовано в строку:

<dataFormats>
  <json id="eventJsonList" prettyPrint="true" library="Jackson" useList="true"
    unmarshalTypeName="example.model.Event" />
</dataFormats>

<camel:rest path="events" bindingMode="off" consumes="application/json" produces="application/json">
  <camel:put 
    uri="/save">
    <to uri="direct:save-events" />
  </camel:put>
</camel:rest>

<camel:route  id="save-events">
  <from uri="direct:save-events" />
  <camel:convertBodyTo type="java.lang.String"/>
  <camel:unmarshal ref="eventJsonList"/>
  <to uri="mock:result"/>
</camel:route>
0 голосов
/ 22 января 2019

Я думаю, вам нужно использовать camel:unmarshall, чтобы указать маршрут для использования вашего формата данных.

<camel:rest path="events" consumes="application/json" produces="application/json">
    <camel:put uri="/save">
        <camel:route>
            <camel:unmarshal ref="eventJsonList" />
            <camel:to uri="direct:save-events" />
        </camel:route>
    </camel:put>
</camel:rest>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...