mule - 选择路由器表情骡子
问题描述
我正在构建一个向其发送 json 请求的 api,如下所示:
{
"type":"string",
"code": 101
}
我正在使用选择路由器,并且我正在根据代码路由消息。即,如果代码不是 101 和 100,那么当表达式为 -#[json:code != 101 && json:code != 100]
但即使代码为 103 时,上述表达式也会返回 true。
解决方案
我假设您的评论“代码在双引号中”意味着有效负载是这样的:
{
"type": "string",
"code": "100"
}
如果是这样,我建议您将其转换为 Java 并从那里开始工作。如果代码是一个字符串,您需要将其计算为100 != '100'
:
<json:json-to-object-transformer returnClass="java.util.Map" doc:name="JSON to Object"/>
<choice doc:name="Choice - Code?">
<when expression="#[payload.code != '101' && payload.code != '100']">
<logger level="INFO" doc:name="Logger - Do this"/>
</when>
<otherwise>
<logger level="INFO" doc:name="Logger - Do that"/>
</otherwise>
</choice>
推荐阅读
- javascript - Javascript - 嵌套对象上的代理触发 GET 而不是 SET
- r - 使用gridextra从列表中绘制多个ggplot的有效方法?
- sql - 我想了解如何在 BigQuery 中使用 REGEXP_EXTRACT 函数
- javascript - React:处理映射状态
- java - 从firebase数据库循环抛出子节点并存储到RecyclerView
- docker - Docker 19.03.12:swarm 在 swarm 升级后没有领导者
- vba - vba 访问 Dlookup,日期为 dd/mm/yyyy 格式
- javascript - 如何将对象添加到 JavaScript 中的特定位置?
- python - 构建 Python Wheel 包时如何指定构建目录?
- java - 如何在 Java 中获取时间戳为 48962-08-06T23:16:59.000Z 的 Instant 对象