188.12. 使用标头作为输入

可从 Camel 2.20 开始

默认情况下 jsonpath 使用消息正文作为输入源。但是,您还可以通过指定 headerName 选项来使用标头作为输入。

例如,若要从 json 文档中计算图书的数量,该文件位于名为 books 的标头中:

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>