apache-camel - 我可以在 JsonPath 语言中使用 Camel 简单表达式吗?

标签 apache-camel jsonpath

您好,我想在我的 JsonPath 表达式中使用来 self 的 camel exchange 的 header 值作为过滤条件。

有些想法是这样的:

.setBody().jsonpath("$.person[?(@.role=='${headers.role}')]")

简单表达式不会这样解析。

我如何使用 Apache Camel 完成这项工作?

最佳答案

我发现了一种使用处理器组件和一些 Java 代码完成它的方法:

String jsonpathFilter = SimpleLanguage.simple(
  "$.person[?(@.role=='${headers.role}')]").evaluate(exchange, String.class);
String result = new JsonPathExpression(jsonpathFilter).evaluate(exchange, String.class);
exchange.getIn().setBody(result);

但我对这个解决方案不太满意。因此,如果您知道更好的方法,请告诉我。

关于apache-camel - 我可以在 JsonPath 语言中使用 Camel 简单表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38609231/

相关文章:

java - 使用 jsonpath 表达式的数组大小 - Stefan Goessner JsonPath

Python,jsonpath : How do I parse with jsonpath correctly?

java - 如何通过 Hapi 获取 HL7 v2x 消息的段、组和重复次数列表

java - 使用apache Camel从队列到soap服务器的数据传输

java - 更新camel-SAP缓存而不重新启动整个实例

Jsonpath - 在子级别过滤以获取父属性

json - 使用 Jayway 实现在 JSONpath 中进行谓词分组

apache-camel - 没有 "to"端点的 Apache Camel 路由

java - 将 Camel 路线配置返回到 xml

kubernetes - 如何使用 kubectl 命令获取集群 ID