Как зациклить json и опубликовать каждый индекс в camelcontext - PullRequest
0 голосов
/ 01 ноября 2019

Допустим, у меня есть следующее CamelContext :

<camelContext id="camelId"  xmlns="http://camel.apache.org/schema/spring">
    <route id="upsertItem">
        <from uri="cxf:bean:someEndpoint" />
        <process ref="someTransformer" />
        <log message="$someJson"/>
    </route>
</camelContext>

$ someJson содержит следующий json:

{
   "0":{
      "title":"hello world",
      "description":"a greeting to the world"
   },
   "1":{
      "title":"goodbye world",
      "description":"a goodbye to the world"
   }
   //might have more indexes
}

Я хочуотредактировать мой CamelContext , чтобы он мог публиковать каждый индекс в конечной точке. Проблема в том, что я не могу понять, как перебирать JSON.

Поэтому я хочу получить что-то похожее на это:

<loop src="${someJson[index]}">
    <to uri="http://bookstore/api/books"/>
</loop>

1 Ответ

1 голос
/ 01 ноября 2019

Это можно сделать, разбив исходное сообщение

<split>
    <jsonpath>$[*]</jsonpath>
    <log message="${body}"/>
</split>
...