我正在从 Postman 向 Mulesoft 端点提交 POST 请求,有效负载是 multipart/form-data。有效负载有两个文件,一个是 pdf,另一个是 CSV。这就是有效负载的 CSV 部分在 DataWeave 中的样子
{
headers: {
"Content-Disposition": {
name: "testData",
filename: "CSV Data.csv",
subtype: "form-data"
},
"Content-Type": "text/csv"
},
content: [] as Array {raw: "SU5WMTIzNCxQTzEyMzQsMTIzNCwxLzEvMjAyNCw0MzIxDQo=" as Binary {base: "64"}, mediaType: "text/csv", mimeType: "text/csv"}
}
如何获取实际的 CSV 值并将其转换为 JSON?
我尝试使用“转换消息”并将输出设置为“application/dw”,但似乎不起作用。
请多多指教,
有点不清楚该请求是如何发出的,但内容是一个以 Base64 编码的 CSV,但由于某种原因它以字节数组的形式呈现。您可以尝试以这种方式获取原始内容(更改多部分有效负载顶部的路径),
payload.content.^raw as String
然后您可以以 CSV 形式读取该表达式的输出,并根据需要进行映射:
%dw 2.0
output application/json
---
read(payload.content.^raw as String, "application/csv",{header:false})
map {
a: $[0],
b: $[1],
c: $[2],
d: $[3]
}
输出:
[
{
"a": "INV1234",
"b": "PO1234",
"c": "1234",
"d": "1/1/2024"
}
]