mule - 如何将三元运算符与 Mule 表达式求值器一起使用

标签 mule

在我的 Mule 流程中,我想在消息丰富元素中使用三元运算。

例如,以下是当源为 null 时抛出错误的现有行:


        <enricher doc:name="Add revision number" target="#[variable:rev]" source="#[json:_rev]">

这是尝试使用三元运算时的行:


        <enricher doc:name="Add revision number" target="#[variable:rev]" source="#[json:_rev == null ? '' : json:_rev]">

如果从丰富源返回 null,我想返回一个空字符串。我不希望当 Mule 尝试使用“setProperty()”函数分配 null 值时抛出错误。

当前三元示例可以工作,但它返回“false”(不是字符串)。

最佳答案

这不是 Mule 表达式语言 (MEL),而是旧的求值器语法,它不支持三元表达式。

编辑:

我建议您获取MEL cheatsheet并查看 JSON 处理是如何完成的。

根据您提供的部分信息,我认为您在 HTTP 出站端点的响应阶段需要一个 json-to-object-transformer(用于获取 JSON,对吧?)。然后您可以在丰富器中使用 MEL 三元表达式。

关于mule - 如何将三元运算符与 Mule 表达式求值器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244621/

相关文章:

mule - 内存问题 : parse a large csv file transform to json and then call a third party rest service using Mule 4. 4 社区版

java - 在使用 Mule 4.1.4. 的 Mule 扩展中,有没有办法获取有关我的操作中的下一个操作的信息?

http - 如何删除 Mule 默认 header 并设置从第三方 API 收到的 header

Mule 属性窗口未显示

mule - 在数据编织中拆分字符串

unit-testing - 如何模拟 MuleEventContext 类

基于 Header 属性的 Mule 选择节点表达式

java - XSLT 转换不起作用

在 Mule ESB 中使用 Windows 凭证的 CXF 端点

spring - Mule JMX 代理 - 需要在运行时更新端口值