Я отправляю запрос POST от Postman на конечную точку Mulesoft, и полезная нагрузка представляет собой 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, закодированное в Base64, но по какой-то причине оно представлено в виде массива байтов. Вы можете попробовать получить необработанный контент таким образом (измените путь сверху многочастной полезной нагрузки),
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"
}
]