Mulesoft Dataweave 将 CSV 转换为动态映射

Mulesoft Dataweave convert CSV to map dynamically

我创建了一个流程,它通过表单数据 API POST 接受 CSV,然后在批处理作业中处理每一行。理想情况下,我不想在将每一列传递给批处理执行器之前手动映射它,但我不知道如何动态地 "pass through" 和 key/value 对。我想确保 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 {
    *:*
}

我不得不想象这很容易做到,但我想不出来。

谢谢, 史蒂夫

hand-map each column before passing it to the batch executor

您不需要这样做。将整个 csv 传递到批输入阶段,并允许它将每一行拆分为一个 Linked Hashmap。

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

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