Apache Camel使用spring DSL比较字符串与引号,如何逃脱?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache Camel使用spring DSL比较字符串与引号,如何逃脱?相关的知识,希望对你有一定的参考价值。

如何比较身体内容匹配(equalsstartWith)的值

{"status":"OK"}

怎么样?

<camel:choice>
 <camel:when>
  <simple>${in.body} == '{"status":"OK"}'</simple>
  ...
 </camel:when>
</camel:choice>

我尝试:

'{"status":"OK"}'

'{x22statusx22:x22OKx22}'

'{"status":"OK"}'

'{"status":"OK"}'

...

我可以做这个:

<simple>${in.body} contains '{"status":"OK"'</simple>

但我需要equalsstartWith作为规则运营商。 :(

我正在使用版本apache-camel-2.20.1

答案

Camel支持JsonPath,所以你应该更好地使用这个组件来比较json。

在pom中添加依赖项

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-jsonpath</artifactId>
  <version>x.x.x</version>
</dependency>

然后

<camel:choice>
 <camel:when>
  <jsonpath>$[?(@.status=='OK')]]</jsonpath>
  ...
 </camel:when>
</camel:choice>

以上是关于Apache Camel使用spring DSL比较字符串与引号,如何逃脱?的主要内容,如果未能解决你的问题,请参考以下文章

如何在apache camel DSL或camel Processor内部设置其他身份验证属性?

如何在apache camel DSL中获得正确的https服务器响应?

Camel Java DSL:无法解析bean定义资源模式[META-INF / spring / * .xml]

Camel Rest DSL 检索 HTTP POST 多部分文件

Apache Camel 和 Hystrix 命令名称

Apache Camel - Spring 休息端点参考