68.10. 使用标头作为输入
默认情况下,JSONPath 使用消息正文作为输入源。但是,您可以通过指定 headerName 选项,将标头用作输入。
例如,若要计算 JSON 文档中的图书数量,该文档存储在名为 book 的标头中,您可以执行以下操作:
from("direct:start")
.setHeader("numberOfBooks")
.jsonpath("$..store.book.length()", false, int.class, "books")
.to("mock:result");
在上面的 jsonpath 表达式中,我们将标题 名称指定为 book,而且我们想要将结果转换为 int.class 的整数。
XML DSL 中的相同示例是:
<route>
<from uri="direct:start"/>
<setHeader name="numberOfBooks">
<jsonpath headerName="books" resultType="int">$..store.book.length()</jsonpath>
</setHeader>
<to uri="mock:result"/>
</route>