如何在数据编织中转换后追加数据
how to append data after transform in dataweave
我有一个数组负载,其中包含一项和一个对象。
我需要转换对象数据然后附加那些项目。
我可以使用下面的代码来转换名称为属性的对象,
但是如何像下面的输出那样附加单个项目。
脚本
payload map (item) ->
(
item.attributes reduce ((item, accumulator={}) ->
{
(accumulator),
(item.name): item.value
}
)
)
输出
[
{
"store": "007878",
"inventoryDate": "20201124",
"varianceArticleNumber": "dddrrr"
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
}
]
输入
[
{
"store": "007878",
"attributes": [
{
"name": "inventoryDate",
"value": "20201124"
},
{
"name": "varianceArticleNumber",
"value": "NF006002CC21140000"
}
]
},
{
"store": "007878",
"attributes": null
},
{
"store": "007878",
"attributes": null
},
{
"store": "007878",
"attributes": null
}
]
实现此目的的一种方法是在 item.attributes 为 null 的情况下使用默认值。这样做对输入数组中的所有元素进行相同的处理。
output application/json
var defaultAttributes=[
{
"name": "inventoryDate",
"value": ""
},
{
"name": "varianceArticleNumber",
"value": ""
}
]
---
payload map (item) ->
{
store: item.store,
(
item.attributes default defaultAttributes reduce ((item, accumulator={}) ->
{
(accumulator),
(item.name): item.value
}
)
)
}
输出:
[
{
"store": "007878",
"inventoryDate": "20201124",
"varianceArticleNumber": "NF006002CC21140000"
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
}
]
我有一个数组负载,其中包含一项和一个对象。 我需要转换对象数据然后附加那些项目。 我可以使用下面的代码来转换名称为属性的对象, 但是如何像下面的输出那样附加单个项目。
脚本
payload map (item) ->
(
item.attributes reduce ((item, accumulator={}) ->
{
(accumulator),
(item.name): item.value
}
)
)
输出
[
{
"store": "007878",
"inventoryDate": "20201124",
"varianceArticleNumber": "dddrrr"
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
}
]
输入
[
{
"store": "007878",
"attributes": [
{
"name": "inventoryDate",
"value": "20201124"
},
{
"name": "varianceArticleNumber",
"value": "NF006002CC21140000"
}
]
},
{
"store": "007878",
"attributes": null
},
{
"store": "007878",
"attributes": null
},
{
"store": "007878",
"attributes": null
}
]
实现此目的的一种方法是在 item.attributes 为 null 的情况下使用默认值。这样做对输入数组中的所有元素进行相同的处理。
output application/json
var defaultAttributes=[
{
"name": "inventoryDate",
"value": ""
},
{
"name": "varianceArticleNumber",
"value": ""
}
]
---
payload map (item) ->
{
store: item.store,
(
item.attributes default defaultAttributes reduce ((item, accumulator={}) ->
{
(accumulator),
(item.name): item.value
}
)
)
}
输出:
[
{
"store": "007878",
"inventoryDate": "20201124",
"varianceArticleNumber": "NF006002CC21140000"
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
},
{
"store": "007878",
"inventoryDate": "",
"varianceArticleNumber": ""
}
]