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)
我创建了一个流程,它通过表单数据 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)