Я извлекаю через REST JSON с массивом объектов с некоторыми полями и несколькими вложенными объектами.
Я пытаюсь создать сгруппированный суммарный объект из массива вложенных объектов JSON сследующая структура:
var data = [
{
"Id": 79,
"Date": "2019-02-17T00:00:00-07:00",
"StartTime": 1535385600,
"EndTime": 1535416200,
"Slots": [
{
"blnEmptySlot": false,
"strType": "B",
"intStart": 3600,
"intEnd": 5400,
"intUnixStart": 1535389200,
"intUnixEnd": 1535391000,
}
],
"OperationalUnit": 3,
"Created": "2019-01-31T11:23:29+02:00",
"StartTimeLocalized": "2019-02-17T10:00:00+02:00",
"EndTimeLocalized": "2019-02-17T19:00:00+02:00",
"_MetaData": {
"AttendeeInfo": {
"Id": 111,
"AttendeeDisplayName": "att_name1",
"AttendeeProfile": 406,
"Attendee": 406,
"Photo": "avatar_path"
},
"OperationalUnitInfo": {
"Id": 3,
"OperationalUnitName": "op_unit_name",
"Company": 1,
"CompanyName": "comp_name",
"LabelWithCompany": "comp_label"
},
}
},
{
"Id": 80,
"Date": "2019-02-17T00:00:00-07:00",
"StartTime": 1535385600,
"EndTime": 1535416200,
"Slots": [
{
"blnEmptySlot": false,
"strType": "B",
"intStart": 3600,
"intEnd": 5400,
"intUnixStart": 1535389200,
"intUnixEnd": 1535391000,
}
],
"OperationalUnit": 3,
"Created": "2019-01-31T11:23:29+02:00",
"StartTimeLocalized": "2019-02-17T10:00:00+02:00",
"EndTimeLocalized": "2019-02-17T19:00:00+02:00",
"_MetaData": {
"AttendeeInfo": {
"Id": 112,
"AttendeeDisplayName": "att_name2",
"AttendeeProfile": 407,
"Attendee": 407,
"Photo": "avatar_path"
},
"OperationalUnitInfo": {
"Id": 3,
"OperationalUnitName": "op_unit_name",
"Company": 1,
"CompanyName": "comp_name",
"LabelWithCompany": "comp_label"
},
}
}
];
Общая цель состоит в том, чтобы создать список объектов событий с начальным и конечным DateTime, строкой LabelWithCompany (глубоко вложенный объект) и списком всех участников, сгруппированных по OperationalUnitName и Start, иВремя окончания.
Пример:
[
{
"2019-02-17T00:00:00-08:00": {//Date
"2019-02-17T10:00:00+02:00": {//StartTimeLocalized
"2019-02-17T19:00:00+02:00": {//EndTimeLocalized
"[NYC] Network - Solutions": {//LabelWithCompany
"attendees": [
"att_name1",//AttendeeDisplayName
"att_name2" //AttendeeDisplayName
]
}
}
}
}
}
]
Я предполагаю, что map и lower - необходимые функции, но у меня были проблемы с выполнением нескольких вложенных сокращений.Любое другое предложение, как объединить эти объекты в агрегированный формат, который будет содержать всех участников для каждого сеанса.