mule - Mulesoft 将多个 JSON/XML 转换为 CSV
问题描述
我对在 Mulesoft 中将 JSON 转换为 CSV 完全陌生。目前我需要努力将嵌套的 JSON 转换为 CSV,我的 CSV 应该看起来像这样,我的 JSON 会像
{
"Invoice": [
{
"Invoice Number*": "",
"Supplier Name": "",
"Supplier Number": "",
"Status": "",
"Invoice Date*": ""
}
],
"Invoice Line": [
{
"Invoice Number*": "",
"Supplier Name": "",
"Supplier Number": "",
"Line Number": "",
"Description*": "",
"Supplier Part Number": "",
"Auxiliary Part Number": "",
"Price*": "",
"Quantity": "",
"Bulk Price": "",
"Bulk Price Qty": ""
}
],
"Invoice Tax Line": [
{
"Invoice Number*": "",
"Invoice Line Number": "",
"Invoice Charge Number": "",
"Line Number": "",
"Tax Amount": "",
"Tax Rate": "",
"Tax Code": "",
"Tax Rate Type": ""
}
]
}
我对 CSV 的了解是只有一个标题。对我来说,将这个复杂的 JSON 映射到 CSV 中显示不同标题的最佳方法是什么?
解决方案
你可以这样做:
%dw 2.0
output application/csv header=false
---
flatten (
[
{"Invoice Number":"Invoice Number",
"Supplier Name": "Supplier Name",
"Supplier Number" :"Supplier Number",
"Status" : "Status",
"Invoice Date*" : "Invoice Date*"
},
{
"Invoice Number":"Invoice Number*",
"Supplier Name":"Supplier Name",
"Supplier Number":"Supplier Number",
"Status":"Status",
"Invoice Date*":"Invoice Date*"
},
payload.Invoice map {
"Invoice Number":$."Invoice Number*",
"Supplier Name":$."Supplier Name",
"Supplier Number":$."Supplier Number",
"Status":$.Status,
"Invoice Date*":$."Invoice Date*"
},
payload."Invoice Line" map {
"Invoice Number": $."Invoice Number*",
"Supplier Name":$."Supplier Name",
...
}
,
payload."Invoice Tax Line" map {
"Invoice Number":$."Invoice Number*",
...
}
]
)
推荐阅读
- c++ - 有人可以帮我并行化这个 C++ 代码吗?
- apache-spark - 使用 Kafka 使用 Spark 结构化批处理作业管理偏移量
- python - 基于传入路径更新字典中嵌套值的简单方法
- python - 如何同时运行两个 for 循环并决定输出
- amazon-web-services - boto3 list_objects_v2 StartAfter 无法正常工作
- testing - 获取赛普拉斯数组中不包含值的第一个元素
- scala - Spark 数据集上的 typsafe sortBy/orderBy
- excel - 如何让高级过滤器刷新
- security - 在标头中发送会话密钥与仅 HTTP cookie
- c++ - 我怎样才能摆脱
出现在我的方法模板中的类型?方法和类的输入都是模板