以下示例包含相同的键“行”。可能有成千上万个这样的对象。 我需要一个最佳解决方案来转换以下对象:
{
"row":{
"name": "abc"
},
"row":{
"school": "pqr"
}
}
要求输出:
{
"rows":
[
{
"name": "abc"
},
{
"school": "pqr"
}
]
}
这里 groupBy 将有助于对相似的键进行分组,而 pluck 会将对象转换为数组。
%dw 2.0
output application/json
---
(payload groupBy $$) mapObject (($$): ($ pluck $))
输入
{
"row":{
"name": "abc"
},
"row":{
"school": "pqr"
}
}
输出
[
{
"row": [
{
"name": "abc"
},
{
"school": "pqr"
}
]
}
]
如果您想要 rows 作为硬编码键,则将
(($ pluck $$)[0]):($ pluck $)
替换为 ("rows"):($ pluck $)
%dw 2.0
output application/json
---
(payload groupBy $$)pluck $ map{
(($ pluck $$)[0]):($ pluck $)
}
只需使用多值选择器来获取具有相同键的所有键 姓名:
https://docs.mulesoft.com/dataweave/2.4/dataweave-selectors
%dw 2.0
output application/json
---
rows: payload.*row