首页 > 解决方案 > 我如何循环json并在camelcontext中发布每个索引

问题描述

假设我有以下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>

标签: javajsonapache-cameljavabeans

解决方案


可以通过拆分原始消息来完成

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

推荐阅读