首页 > 解决方案 > 我们如何在 mule4 中使用表达式组件

问题描述

需要知道我们如何使用 DW 或任何其他方法在 mule 4 中使用以下表达式组件

<expression-component doc:name="Expression to remove ["><![CDATA[payload=payload.replace('[','');]]></expression-component>

输入是:

[A 01 02 03 04, B 01 02 03 04, C 01 02 03 04]

预期输出为:

A 01 02 03 04  
B 01 02 03 04  
C 01 02 03 04  

标签: muleexpressionmule-componentdataweave

解决方案


mule 4 中没有表达式组件。请改用 dataweave 转换消息组件。

所以有了额外的信息,我猜你的有效载荷是一个字符串(不是一个 java 数组?),你的输出是一个空格分隔的 csv 文件。如果是这样,您可以使用正则表达式删除周围的括号,然后用逗号分割以获取行,然后按空格分割以获取字段。然后,您可以将它们合并在一起以获得预期的输出,如下所示:

%dw 2.0
output text/csv header=false, separator=" "

---
((payload match(/\[(.*?)\]/))[1]) splitBy  ","
map ((item, index) ->  ( (trim(item) splitBy " " ) 
    map (item, index) -> (index as String): item )reduce ($$ ++ $)

) 

在此处输入图像描述


推荐阅读