mule 4 DataWeave 2.0 交换来自 json 有效载荷的对象、键和值

mule 4 DataWeave2.0 swaping object,key and values from json payload

我在尝试更改有效负载中的数据并将其转换为另一个 api 时遇到问题,这需要具有相同值的不同类型的输入

输入负载

{"metadata":
    {"attributes":
        [
        {
            "name":"FromDate",
            "value":"22-09-2021"
        },
        {
            "name":"ToDate",
            "value":"22-02-2022"
        }
        {
            "name":"Purchased",
            "value":"21-02-2021"
        }
        ]
    }
}

预期输出负载

{"attributes":
    {
    "FromDate":"22-09-2021",
    "ToDate":"22-02-2022",
    "Purchased":"21-02-2021"
    }
}

我尝试了下面的代码来转换数据,但无法实现结果

%dw 2.0
output application/json
---
{
    "attributes": payload."metadata"."attributes" map ((item, index) -> {(item."name"):item."value"})
}

欢迎提出任何建议和答案

%dw 2.0
output application/json
---
attributes: 
    payload.metadata.attributes reduce (
        (item,accum={}) -> 
            accum ++ { (item.name): (item.value)}
    )

我建议转到 https://dwlang.fun 并使用右上角的“教程”选项卡。它涵盖了常见的场景,并具体涵盖了 mapmapObjectreduce.

等内容

你也可以做一些纯粹使用地图的事情。

%dw 2.0
output application/json
---
attributes: {(payload.metadata.attributes map {
    ($.name): ($.value)
})}