首页 > 解决方案 > 选择路由器表情骡子

问题描述

我正在构建一个向其发送 json 请求的 api,如下所示:

{
  "type":"string",
  "code": 101
}

我正在使用选择路由器,并且我正在根据代码路由消息。即,如果代码不是 101 和 100,那么当表达式为 -#[json:code != 101 && json:code != 100] 但即使代码为 103 时,上述表达式也会返回 true。

标签: mulemule-component

解决方案


我假设您的评论“代码在双引号中”意味着有效负载是这样的:

{
  "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' &amp;&amp; payload.code != '100']">
        <logger level="INFO" doc:name="Logger - Do this"/>
    </when>
    <otherwise>
        <logger level="INFO" doc:name="Logger - Do that"/>
    </otherwise>
</choice>

推荐阅读