Search code examples
jsonmuledataweavemule-esb

Get Data Value from JSON in Mule


I have following response from a API call and now trying to get a value in a variable.

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

Tried all following methods but all are returning null or error.

<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"/>

Any idea how to get this value?


Solution

  • Convert to a Array of Maps first, then use the MEL expressions to extract the value:

    <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"/>