Получить значение данных из JSON в Mule - PullRequest
0 голосов
/ 27 июня 2018

Я получил следующий ответ от вызова API и сейчас пытаюсь получить значение в переменной.

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

Опробовал все следующие методы, но все возвращают ноль или ошибку.

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

Есть идеи, как получить это значение?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Сначала преобразуйте в массив карт, затем используйте выражения 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"/>
0 голосов
/ 27 июня 2018

Вы можете установить их в DataWeave или выполнить преобразование json-to-object и использовать компонент set-variable:

Вот данные:

<dw:transform-message doc:name="Transform Message">
  <dw:set-variable variableName="alertIdPayload">
    <![CDATA[
      %dw 1.0
      %output application/java
      ---
      payload[0].Name
    ]]>
  </dw:set-variable>
</dw:transform-message>

А вот ж / трансформатор и set-variable компонент:

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

Надеюсь, это поможет.

...