如何在 mule 中将逗号分隔的字符串转换为 csv?
How to transform comma separated string into csv in mule?
我有一个要求,在流变量中有动态逗号分隔的字符串值,我需要将其转换为 csv 文件值。
例如,我可以在变量中使用以下逗号分隔的字符串值:
abc,efg,ijk
或
mno,123,qrs,w3e
应转换为 csv 值,例如:
"abc","efg","ijk"
或
"mno","123","qrs","w3e"
我尝试了以下方法:
<set-variable variableName="stringValue" value="#['abc,efg,ijk']" doc:name="Variable"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/csv header=true, quoteValues=true, quoteHeader=true
---
flowVars.stringValue splitBy ","]]></dw:set-payload>
</dw:transform-message>
所以,我在这里期待 csv 文件的值为:
"abc","efg","ijk"
但是它不起作用,出现错误!
您可能已经解决了这个问题,但如果没有,您实际上已经非常接近了。转换为 CSV 需要一个二维数组作为输入:文件的行数组,其中每一行都是列数组。
例如:[["line1, Col1", "line1, Col2"], ["line2, col1", "line2, col2"], ... ]
.
在您的示例中的 splitBy 之后,您只有一个数组 - ["abc","efg","ijk"]
,因此解决方案是将其包装在一个数组中:[flowVars.stringValue splitBy ","]
.这给出了您正在寻找的输出。
我有一个要求,在流变量中有动态逗号分隔的字符串值,我需要将其转换为 csv 文件值。
例如,我可以在变量中使用以下逗号分隔的字符串值:
abc,efg,ijk
或
mno,123,qrs,w3e
应转换为 csv 值,例如:
"abc","efg","ijk"
或
"mno","123","qrs","w3e"
我尝试了以下方法:
<set-variable variableName="stringValue" value="#['abc,efg,ijk']" doc:name="Variable"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/csv header=true, quoteValues=true, quoteHeader=true
---
flowVars.stringValue splitBy ","]]></dw:set-payload>
</dw:transform-message>
所以,我在这里期待 csv 文件的值为:
"abc","efg","ijk"
但是它不起作用,出现错误!
您可能已经解决了这个问题,但如果没有,您实际上已经非常接近了。转换为 CSV 需要一个二维数组作为输入:文件的行数组,其中每一行都是列数组。
例如:[["line1, Col1", "line1, Col2"], ["line2, col1", "line2, col2"], ... ]
.
在您的示例中的 splitBy 之后,您只有一个数组 - ["abc","efg","ijk"]
,因此解决方案是将其包装在一个数组中:[flowVars.stringValue splitBy ","]
.这给出了您正在寻找的输出。