189.8. 内联简单例外
从 Camel 2.18 开始提供
现在,可以使用简单的语法 ${xxx} 在 JSonPath 表达式中内联简单语言表达式。下面是一个示例:
from("direct:start") .choice() .when().jsonpath("$.store.book[?(@.price < ${header.cheap})]") .to("mock:cheap") .when().jsonpath("$.store.book[?(@.price < ${header.average})]") .to("mock:average") .otherwise() .to("mock:expensive");
在 XML DSL 中:
<route> <from uri="direct:start"/> <choice> <when> <jsonpath>$.store.book[?(@.price < ${header.cheap})]</jsonpath> <to uri="mock:cheap"/> </when> <when> <jsonpath>$.store.book[?(@.price < ${header.average})]</jsonpath> <to uri="mock:average"/> </when> <otherwise> <to uri="mock:expensive"/> </otherwise> </choice> </route>
您可以通过将选项 allowSimple 设置为 false 来关闭对内联简单表达式的支持,如下所示:
.when().jsonpath("$.store.book[?(@.price < 10)]", false, false)
在 XML DSL 中:
<jsonpath allowSimple="false">$.store.book[?(@.price < 10)]</jsonpath>