2017-02-02 2 views
1

Peut-on accéder à un élément json dans les variables de flux dans Mule?Accéder à l'élément Json dans Flow Variable - Mule 3.7

Par exemple: Ma valeur flowVar est { "Input1": { "Value1": "UNITED STATES" } }

Comment puis-je accéder à l'élément 'VALUE1' en utilisant MEL en mule?

Merci, ROA

+0

Est-ce votre flowVar la représentation de chaîne de l'exemple ci-dessus ou est un HashMap ou ruisseau ou autre chose? –

Répondre

0

réponse est

#[flowVars.theVariable.Input1.Value1] 

mais arriver il faut beaucoup ce qu'il faut faire. Vous devez créer une variable de manière appropriée pour correspondre à votre description. Aussi le nom de la variable est manqué mais vous en avez besoin quand même. Voici le code

<flow name="AccessFlowVariable"> 
     <poll doc:name="Poll"> 
      <fixed-frequency-scheduler frequency="10000000"/> 
      <logger message="Flow started" level="INFO" doc:name="Logger"/> 
     </poll> 
     <dw:transform-message doc:name="Transform Message"> 
      <dw:set-variable variableName="theVariable"><![CDATA[%dw 1.0 
%output application/java 
--- 
{ "Input1": { "Value1": "UNITED STATES" } }]]></dw:set-variable> 
     </dw:transform-message> 
     <logger message="#[flowVars.theVariable.Input1.Value1]" level="INFO" doc:name="Logger"/> 
     <logger level="INFO" doc:name="Logger"/> 
    </flow> 

et ici est le résultat enter image description here

+1

Votre sortie sur DW est Java, donc le type résultant est (et est montré dans votre image ci-dessus) est java.util.LinkedHashMap. Donc la notation par points fonctionne, je pense qu'il demande que le flowVar soit une chaîne et non un hashmap. –

+0

Salut @Alex, je l'ai eu. Cela marche. – ROA

1

essayer l'expression ci-dessous,

#[json:/Input1/Value1] 
0

"Peut-on accéder à un élément de JSON à l'intérieur des variables d'écoulement dans Mule?": Oui, nous pouvons accéder à l'élément JSON intérieur variable débit. "Comment puis-je accéder à l'élément 'Value1' en utilisant MEL dans mule?" Soit dit si vous avez enregistré cette JSON dans la variable de flux (xyz), vous pouvez y accéder en utilisant la syntaxe ci-dessous: flowVars.xyz.Input1.Value1

0

Vous pouvez utiliser la fonction ou l'expression dw chemin JSON pour y parvenir. exemples:

[dw ('payload.Request.name')]

[JSON: Demande/nom]