Я преобразовываю полезную нагрузку из json в json с применением условия groupBy, но я не получаю нужных данных, которые хочу. Я должен сгруппировать сотрудника и перечислить все его задачи. В настоящее время я могу применить сотрудника 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) : $
})}})
}
Надеюсь это поможет.