如何在 Mulesoft 中使用多部分/表单数据 POST 请求的 CSV 文件

问题描述 投票:0回答:1

我正在从 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”,但似乎不起作用。

请多多指教,

csv multipartform-data dataweave mulesoft mule4
1个回答
0
投票

有点不清楚该请求是如何发出的,但内容是一个以 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"
  }
]
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.