Mule &引用;通过应用groupBy将JSON转换为JSON;

Mule &引用;通过应用groupBy将JSON转换为JSON;,mule,mule-studio,mule-component,anypoint-studio,mule-esb,Mule,Mule Studio,Mule Component,Anypoint Studio,Mule Esb,我正在通过应用groupBy条件将有效负载从json转换为json,但我没有得到我想要的正确数据。 我必须对员工进行分组,并列出他的所有任务。 目前我可以申请groupBy员工,但他的所有任务未显示 有效载荷为: [ { "Id": 1, "EmployeeName": "AA", "Task": { "TaskName": "Deploy" } }, { "Id":

我正在通过应用groupBy条件将有效负载从json转换为json,但我没有得到我想要的正确数据。 我必须对员工进行分组,并列出他的所有任务。 目前我可以申请groupBy员工,但他的所有任务未显示

有效载荷为:

[
    {
        "Id": 1,
        "EmployeeName": "AA",
        "Task": {
            "TaskName": "Deploy"
        }
    },
    {
        "Id": 1,
        "EmployeeName": "AA",
        "Task": {
            "TaskName": "Test"
        }
    },
    {
        "Id": 3,
        "EmployeeName": "BB",
        "Task": {
            "TaskName": "Deploy"
        }
    }
]
这是我的转换代码:

%dw 1.0
%output application/json
---
(payload groupBy ($.EmployeeName ++ $.Id)) map {
    EmployeeName : $[0].EmployeeName,
    Email : $[0].Email,
    Task: $[0].Task  
}
这就是我得到的:

[
    {
        "EmployeeName": "AA",
        "Task": {
            "TaskName": "Deploy"
        }
    },
    {
        "EmployeeName": "BB",
        "Task": {
            "TaskName": "Deploy"
        }
    }
]
预期结果:

[
    {
        "EmployeeName": "AA",
        "Task1": {
            "TaskName": "Deploy"
        },
        "Task2": {
            "TaskName": "Test"
        }
    },
    {
        "EmployeeName": "BB",
        "Task1": {
            "TaskName": "Deploy"
        }
    }
]

如何修改dataweave以获得预期结果。

以下代码应该可以正常工作

%dw 1.0
%output application/json
---
payload groupBy ($.Id ++ $.EmployeeName) map {
    EmployeeName : $[0].EmployeeName,
    ({Task : {($.Task map {
        ('Task' ++ $$ + 1) : $
    })}})
}

希望这有帮助。

以下代码应该可以正常工作

%dw 1.0
%output application/json
---
payload groupBy ($.Id ++ $.EmployeeName) map {
    EmployeeName : $[0].EmployeeName,
    ({Task : {($.Task map {
        ('Task' ++ $$ + 1) : $
    })}})
}
希望这有帮助