【发布时间】:2015-06-12 15:06:08
【问题描述】:
仍在学习 Mulesoft 的 Anypoint Studio... 我很困惑如何通过 HTTP 侦听器访问原始 JSON POST 数据,然后使用选择流控制根据给定 JSON 索引中的值执行条件。任何人都可以显示/告诉我如何做到这一点?
【问题讨论】:
标签: mule esb mule-studio
仍在学习 Mulesoft 的 Anypoint Studio... 我很困惑如何通过 HTTP 侦听器访问原始 JSON POST 数据,然后使用选择流控制根据给定 JSON 索引中的值执行条件。任何人都可以显示/告诉我如何做到这一点?
【问题讨论】:
标签: mule esb mule-studio
JSON HTTP 正文将自动成为 Mule 中消息的有效负载,可能表示为 Stream。
仅出于演示目的,请尝试在 http:listener 之后使用以下命令记录有效负载:
<object-to-string-transformer />
<logger level="INFO" message="#[payload]" />
查询 JSON 的最佳方法是将其转换为使用 JSON 模块转换器的 Map。
<json:json-to-object-transformer returnClass="java.util.HashMap" />
然后使用标准 MVEL 或 Java 语法等 MEL 进行查询。
对于 JSON 文档,例如:{"person" : {"name" : "bob"}}
<logger message="#[payload.person.name]" level="INFO" />
您也可以在 choic 路由器中使用这些表达式:
<choice>
<when expression="#[payload.person.name == 'bob']">
do something ...
</when>
</choice>
【讨论】: