如何在Mule中转换为CSV时消除Dataweave中的转义字符?

时间:2016-07-28 05:19:07

标签: csv mule anypoint-studio dataweave

我在mule流中有一个数据编织,将pojo转换为CSV。 因此,Pojo中的一个字段的值为:" abc,def"

因此,当dataweave转换为CSV时,响应为abc \,def。 正在添加默认转义字符。

请让我知道我们如何摆脱这个转义字符并将csv值设为:abc,def

谢谢。

3 个答案:

答案 0 :(得分:0)

默认情况下,DataWeave将转义逗号以避免歧义/数据错误。例如:

column1,column2,column3
abc,def,1234567,xxxyyyz

column2的值是什么, def 1234567

为了保留逗号字符,还有另外两个选项:

  1. 使用其他字符更改CSV分隔符,例如:|。然后应用以下代码:%output application/csv separator="|"。它将产生如下结果:abc,def | 1234567 | xxxyyyz
  2. 将值包含在引号字符中,例如:" abc,def"。然后申请%output application/csv quoteValues=true。它将产生:" abc,def"," 1234567"," xxxyyyz"

答案 1 :(得分:0)

我发现以下代码将消除DW中的转义字符:

%output application/csv header=true, escape="null"

答案 2 :(得分:0)

最新答案,但我认为它可能有用。 如果要纯粹删除转义符,请使用:

%output application/csv escape = "" 

这显然带来了问题,因为sulthony h提到过,您的csv中会有一个逗号。

column1,column2,column3
abc,def,1234567,xxxyyyz

我的解决方案是将转义字符和硬编码引号删除到字符串上:

%output application/csv escape = ""     
outputField: "\"" ++ inputField ++ "\"" as String

这将产生:

"abc,def",1234567,xxxyyyz

因此,您可能需要根据要解析的紧密程度对其进行下游处理。