首页 > 解决方案 > 从 Mule 中的 JSON 获取数据值

问题描述

我收到了来自 API 调用的响应,现在尝试获取变量中的值。

[{"Name":"My name","Address":"add1","Location":"NY"}]

尝试了以下所有方法,但都返回 null 或错误。

<set-variable variableName="alertIdPayload" value="#[payload[0].Name]" doc:name="Payload"/>

<set-variable variableName="alertIdPayload" value="#[message.payload[0].Name]" doc:name="Payload"/>

<set-variable variableName="alertIdPayload" value="#[json:Name]" doc:name="Payload"/>

<set-variable variableName="alertIdPayload" value="#[json:payload[0]/Name]" doc:name="Payload"/>

知道如何获得这个值吗?

标签: jsonmuledataweavemule-esb

解决方案


首先转换为地图数组,然后使用 MEL 表达式提取值:

<json:json-to-object-transformer
            returnClass="java.util.HashMap[]" doc:name="JSON to Object" />
<set-variable variableName="alertIdPayload" value="#[payload[0].Name]" doc:name="Payload"/>

推荐阅读