Mulesoft Dataweave将CSV转换为动态映射

时间:2017-07-18 13:07:10

标签: mule mule-studio dataweave

我创建了一个流,它通过表单数据API POST接受CSV,然后处理批处理作业中的每一行。理想情况下,我不希望在将每个列传递给批处理执行程序之前对其进行手工映射,但我无法弄清楚如何动态地“遍历”键/值对。我想确保CSV可以有新列,我们会事先通过它们而不事先了解它们......这就是我所拥有的:

%dw 1.0
%output application/java
---
payload map {
    title: $.title,
    description: $.description,
    template_id: $.template_id,
    pricing_flat_price: $.pricing_flat_price,
    scheduled_start_date: $.scheduled_start_date,
    resource_id: $.resource_id,
    industry_id: $.industry_id,
    owner_email: $.owner_email,
    location_offsite: $.location_offsite
}

这就是我想要的(在非感性的伪代码中):

%dw 1.0
%output application/java
---
payload map {
    *:*
}

我必须想象这很容易做到,但我无法理解。

谢谢你, 史蒂夫

2 个答案:

答案 0 :(得分:0)

  

在将每个列传递给批处理执行器之前手动映射

你不应该这样做。将整个csv传递给批处理输入阶段,并允许它将每一行拆分为Linked Hashmap。

答案 1 :(得分:0)

您可以简单地使用如下所示的转换 -

%dw 1.0
%output application/java
---
(payload)