[英]Mule esb 3.8 how to add variable into payload?
let say I have payload:假设我有有效载荷:
{ Name=User1, Age=29 } { 姓名=用户 1,年龄=29 }
and variable:和变量:
{ Address=Planet Earth} {地址=行星地球}
I want to have a check if that variable not null then add it into payload.我想检查该变量是否不为空,然后将其添加到有效负载中。 So final result will be:所以最终结果将是:
{ Name=User1, Age=29, Address=Planet Earth } { 姓名=User1,年龄=29,地址=行星地球}
How?如何? Was try via payload.Put(variable) but that not allow me such.通过 payload.Put(variable) 尝试但不允许我这样做。
With DataWeave using a Transform component you can use the expression: payload ++ flowVars.variable
通过使用 Transform 组件的 DataWeave,您可以使用以下表达式: payload ++ flowVars.variable
If you don't want or can't use DataWeave then you can use a MEL expression that uses the Java method Map.putAll()
of the Map interface.如果您不想或不能使用 DataWeave,则可以使用 MEL 表达式,该表达式使用 Map 接口的 Java 方法Map.putAll()
。 You can not use <set-payload>
because it doesn't return a value.您不能使用<set-payload>
因为它不返回值。 Instead you can use the <expression-component>
component.相反,您可以使用<expression-component>
组件。
Example:例子:
<expression-component doc:name="Expression"><![CDATA[payload.putAll(flowVars.variable)]]></expression-component>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.