【问题标题】:Mulesoft DataWeave: Transform flat listMulesoft DataWeave:转换平面列表
【发布时间】:2016-05-20 05:52:39
【问题描述】:

我对 DataWeave 比较陌生,想知道如何/是否可以使用 DataWeave 而不是 Java 转换器转换如下所示的消息。

如果我有以下 JSON 用户负载,带有组和子组:

[{
    "GROUP": "GROUP_A",
    "SUBGROUP": "SUBGROUP A1",
    "USER": "USER 1"
}, {
    "GROUP": "GROUP_B",
    "SUBGROUP": "SUBGROUP B1",
    "USER": "USER 1"
}, {
    "GROUP": "GROUP_B",
    "SUBGROUP": "SUBGROUP B1",
    "USER": "USER 2"
}, {
    "GROUP": "GROUP_B",
    "SUBGROUP": "SUBGROUP B2",
    "USER": "USER 3"
}, {
    "GROUP": "GROUP_B",
    "SUBGROUP": "SUBGROUP B2",
    "USER": "USER 4"
}, {
    "GROUP": "GROUP_B",
    "SUBGROUP": "SUBGROUP B2",
    "USER": "USER 5"
}]

将有效负载转换为如下结构的 DataWeave 转换是什么样的:

[   
    {
        "GROUP": "GROUP_A",
        "SUBGROUPS": [{
            "NAME": "SUBGROUP A1",
            "USERS": ["USER 1"]
        }]
    }, {
        "GROUP": "GROUP_B",
        "SUBGROUPS": [{
            "NAME": "SUBGROUP B1",
            "USERS": ["USER 1", "USER 2"]
        }, {
            "NAME": "SUBGROUP B2",
            "USERS": ["USER 3", "USER 4", "USER 5"]
        }]
    }

]

感谢您的帮助!

【问题讨论】:

    标签: mule mule-studio anypoint-studio dataweave


    【解决方案1】:

    DataWeave开发请参考DataWeave Reference Documentation。在这种情况下,您可以参考 Group by ... 部分。要转换上述消息,请尝试以下脚本:

    %dw 1.0
    %output application/json
    ---
    payload groupBy $.GROUP pluck {
        GROUP: $$,
        SUBGROUPS: $ groupBy $.SUBGROUP pluck {
            NAME: $$,
            USERS: $.USER
        }
    }
    

    【讨论】:

    • 太棒了!感谢您的帮助 - 就像一个魅力。还要感谢您提供文档链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多