【问题标题】:Access Json element in Flow Variable - Mule 3.7访问流变量中的 Json 元素 - Mule 3.7
【发布时间】:2017-02-06 12:21:06
【问题描述】:

我们可以在 Mule 中访问流变量中的 json 元素吗?

例如:我的 flowVar 值为{ "Input1": { "Value1": "UNITED STATES" } }

如何在 mule 中使用 MEL 访问元素“Value1”?

谢谢, 资产收益率

【问题讨论】:

  • 您的 flowVar 是上述示例的字符串表示形式还是 HashMap 或 Stream 或其他?

标签: mule mule-el dataweave


【解决方案1】:

试试下面的表达式,

#[json:/Input1/Value1]

【讨论】:

    【解决方案2】:

    你可以使用dw函数或者json路径表达式来实现。 例子:

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

    [json:请求/名称]

    【讨论】:

      【解决方案3】:

      正确答案是

      #[flowVars.theVariable.Input1.Value1]
      

      但是到这里你需要做很多事情。您必须适当地创建变量以匹配您的描述。变量的名称也被遗漏了,但无论如何你都需要它。这是代码

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

      这是结果

      【讨论】:

      • 您在 DW 上的输出是 Java,因此生成的类型是(如上图所示)是 java.util.LinkedHashMap。所以点符号有效,我想他是在问 flowVar 是一个字符串而不是一个哈希图。
      【解决方案4】:

      “我们可以在 Mule 中访问流变量中的 json 元素吗?”:是的,我们可以访问流变量中的 json 元素。

      “如何在 mule 中使用 MEL 访问元素 'Value1'?” 假设您已将此 json 存储在流变量 (xyz) 中,那么您可以使用以下语法访问它: flowVars.xyz.Input1.Value1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2012-11-26
        • 1970-01-01
        • 2013-04-14
        相关资源
        最近更新 更多