Mule:我们可以使用消息属性组件从映射中删除多个键吗

Mule:我们可以使用消息属性组件从映射中删除多个键吗,mule,Mule,请在mule中建议一种方法,在该方法中,我可以移除多个密钥,其中有效负载为Map类型您可以使用变压器或组件移除所需的密钥: 以下是使用变压器的示例: <message-properties-transformer doc:name="Message Properties" scope="outbound"> <delete-message-property key="#[payload.remove('5F2A')]"/> <delete-messa

请在mule中建议一种方法,在该方法中,我可以移除多个密钥,其中有效负载为Map类型

您可以使用变压器或组件移除所需的密钥:

以下是使用变压器的示例:

<message-properties-transformer doc:name="Message Properties" scope="outbound">
    <delete-message-property key="#[payload.remove('5F2A')]"/>
    <delete-message-property key="#[message.outboundProperties.remove('9F37')]"/>
</message-properties-transformer>

或者,如果您使用的是企业版的Mule运行时,可以通过消息转换器组件中的DataWeave脚本从映射负载中删除多个属性,如下代码段所示:

@Override
public Object transformMessage(MuleMessage message, String outputEncoding)
        throws TransformerException {
    message.removeProperty("5F2A", PropertyScope.OUTBOUND);

}
。。。
...

Hi Alex,问题是我必须从地图类型的有效负载中删除多个键。我知道我可以使用转换器,这需要修改代码。我想询问是否有任何预定义的转换器可以完成此任务根据我与mule的工作经验,我还没有遇到一种更简单的方法来完成此任务。感谢您的建议,如果有任何其他可能的方法,我将寻找其他可能的方法来编写自定义转换器
...
<dw:transform-message doc:name="Transform Message">
  <dw:input-payload mimeType="application/java"/>
  <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload mapObject {
  ($$): ($)
} - "5F2A" - "9F37"]]></dw:set-payload>
</dw:transform-message>
...