数据编织 2.0 csv 转换
dataweave 2.0 csv transformattion
获取下面的 csv 文件作为输入
Id|Name|ParentId
001|National|AREG-001
0013|Texas|AREG-001
0012|Tennessee|AREG-001
0006|Indiana|AREG-001
我希望输出为
('001','National','AREG-001'),
('0013','Texas','AREG-001'),
('0012','Tennessee','AREG-001'),
('0006','Indiana','AREG-001')
运行时间:4.2.1
如何改造。
这是一种快速简单的解决方法。
output text/plain
---
"('" ++
(
payload map ((value, index) ->
dw::core::Objects::valueSet(value) joinBy "','"
) joinBy "'),\n('"
)
++ "')"
不要忘记设置 CSV reader 参数 separator="|"
以便正确解释输入。
从 Mule 4.3 开始,您可以使用 valuesOf
而不是 dw::core::Objects::valueSet
另一种使用 reduce() 并显式连接每个字段的方法:
%dw 2.0
output text/plain
---
payload reduce ((item, acc = "") -> acc ++ "('" ++ item.Id ++ "','" ++ item.Name ++ "','" ++ item.ParentId ++ "')\n")]]></ee:set-payload>
无论如何这是连接字符串,因此您应该注意,如果记录数很多,您可能 运行 内存不足。
获取下面的 csv 文件作为输入
Id|Name|ParentId
001|National|AREG-001
0013|Texas|AREG-001
0012|Tennessee|AREG-001
0006|Indiana|AREG-001
我希望输出为
('001','National','AREG-001'),
('0013','Texas','AREG-001'),
('0012','Tennessee','AREG-001'),
('0006','Indiana','AREG-001')
运行时间:4.2.1
如何改造。
这是一种快速简单的解决方法。
output text/plain
---
"('" ++
(
payload map ((value, index) ->
dw::core::Objects::valueSet(value) joinBy "','"
) joinBy "'),\n('"
)
++ "')"
不要忘记设置 CSV reader 参数 separator="|"
以便正确解释输入。
从 Mule 4.3 开始,您可以使用 valuesOf
而不是 dw::core::Objects::valueSet
另一种使用 reduce() 并显式连接每个字段的方法:
%dw 2.0
output text/plain
---
payload reduce ((item, acc = "") -> acc ++ "('" ++ item.Id ++ "','" ++ item.Name ++ "','" ++ item.ParentId ++ "')\n")]]></ee:set-payload>
无论如何这是连接字符串,因此您应该注意,如果记录数很多,您可能 运行 内存不足。