使用Dataweave的json地图列表

时间:2018-05-12 07:56:38

标签: mule dataweave

如何使用dataweave将地图列表转换为json,如下例所示。

输入是地图列表。例如,它有3个元素id,value1,value2

[
    {
        "id" : "123",
        "value1" : "678"
        "value2" : "900"
    },
    {
        "id" : "456",
        "value1" : "679",
        "value2" : "901"
    }
]

预期产出:

根元素是数据,id(123)的值是键和value2,值3是对象中的元素。

{
    "data" : {
        "123" : {
            "value1" : "678",
            "value2" : "900"
        },
        "456" : {
            "value1" : "679",
            "value2" : "901"
        }
    }
}

我试图实现dataweave脚本,但它没有提供我正在寻找的确切输出。我如何编写dataweave脚本来实现这一目标?

2 个答案:

答案 0 :(得分:1)

data: ( payload.*id map '$':payload[$$]  - "id") reduce ($$ ++ $)

应该做的伎俩。

答案 1 :(得分:0)

尝试以下脚本

data: { (payload map { ($.id as :string): $ -- $.id }) }

此处,id用作键,我们从值中删除相应的ID