Если я вас правильно понимаю: вы хотите преобразовать старый JSON в новый.Таким образом, метод map () является лучшим способом преобразования массивов и, таким образом, преобразования вашего JSON.Вот еще одна версия, сделанная с использованием TypeScript, которая позволяет вам избежать глубокого вложения цикла for , где мы берем старый JSON и преобразуем его массив SolutionsDetail.Может быть, это вам тоже поможет.
Рабочий пример: https://stackblitz.com/edit/angular-8ryrvw
Приведенный ниже метод возвращает новый JSON:
GeneartingLandingPadData(oldJson: any): any {
return oldJson['SolutionsDetail'].map((sDetail: any) => {
let groups: Array<any> = [];
sDetail['requestDetails'].forEach((details: any, index: number) => {
groups.push({ GroupId: index + 1, requestDetails: [details] });
});
delete sDetail['requestDetails'];
sDetail['groups'] = groups;
return sDetail;
});
}
Старый JSON
{
"SolutionsDetail": [
{
"SolutionId": 658,
"name": "dk",
"id": 1568377327000,
"requestDetails": [
{
"ReqId": 2331,
},
]
}
]
}
Новый JSON
{
"SolutionsDetail": [
{
"SolutionId": 658,
"name": "dk",
"id": 1568377327000,
"groups": [
{
"GroupId": 1,
"requestDetails": [
{
"ReqId": 2331,
},
]
}
]
}
]
}
У меня работает) Удачи.