繁体   English   中英

嵌套CSV-Mule DataWeave

[英]Nested CSV - Mule DataWeave

我有这样的CSV:

data1,data2,data3;dataa;datab;datac;datax,datay,dataz
data1,data2,data3;dataa;datab;datac;datax,datay,dataz
data1,data2,data3;dataa;datab;datac;datax,datay,dataz

我使用spliter逐行处理记录,进一步在dataweave中使用splitBy“,”将记录转换为地图。 但是我如何才能对“;”进行另一个级别的拆分 SplitBy不允许使用多行定界符,因此dataweave中的CSV类型也是如此。

最终,我想要这样的JSON:

{
   "1":"data1",
   "2":"data2",
   "3":{
      "a":"dataa",
      "b":"datab",
      "c":"datac"
   },
   "x":"datax",
   "y":"datay",
   "z":"dataz "
}

有什么想法吗 ?

尝试以下DataWeave代码:

%dw 1.0
%output application/json
---
payload map {
    "1": $[0],
    "2": $[1],
    "3": using (detail = $[2] splitBy ";") {
        a: detail[1],
        b: detail[2],
        c: detail[3]
    },
    x: $[3],
    y: $[4],
    z: $[5]
}

笔记:

  • 我将输入数据修改为单独的datacdatax 替换; 带有的字符,例如: ...;datab;datac,datax,...
  • 我使用文件连接器读取CSV文件,然后直接在DataWeave转换器中处理它(不要使用Splitter

我想观察一下,您的JSON示例结构不好! 在此JSON中,第4个元素是一个对象,它没有键,只是值...首先,您应该验证您的最终JSON。 有效JSON的示例: 在此处输入图片说明

当您验证JSON时,我会尝试帮助您将CSV数据转换为JSON。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM