188.12. ヘッダーの入力としての使用
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>