187.11. ヘッダーの入力としての使用

Camel 2.20 以降で利用可能

デフォルトでは、jsonpath はメッセージボディーを入力ソースとして使用します。ただし、headerName オプションを指定して、ヘッダーを入力として使用することもできます。

たとえば、books という名前のヘッダーに保存された json ドキュメントから書籍数をカウントするには、次のようにします。

from("direct:start")
    .setHeader("numberOfBooks")
        .jsonpath("$..store.book.length()", false, int.class, "books")
    .to("mock:result");

上記の jsonpath 式では、ヘッダーの名前を books として指定し、結果を int.class で整数として変換することも指示しました。

XML DSL での同じ例は次のようになります。

<route>
  <from uri="direct:start"/>
  <setHeader headerName="numberOfBooks">
    <jsonpath headerName="books" resultType="int">$..store.book.length()</jsonpath>
  </transform>
  <to uri="mock:result"/>
</route>