Изменить (отобразить) форму списка JSON - добавить тег к объектам в TypeScript - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь изменить в своем проекте Angular (TypeScript) список JSON, полученный через запрос REST.

начальный JSON выглядит следующим образом:

[  
   {  
      "id":1,
      "position":3,
      "articleNumber":6
   },
   {  
      "id":2,
      "position":2,
      "articleNumber":7
   }
]

Мне нужно, чтобы стал :

{  
   "data":[  
      {  
         "data":{  
            "id":1,
            "position":3,
            "articleNumber":6
         }
      },
      {  
         "children":[  
            {  
               "data":{  
                  "id":2,
                  "position":2,
                  "articleNumber":7
               }
            }
         ]
      }
   ]
}

Мне удалось добавить тег ' data ', создав новый объект {data:}, а затем присвоить свойству данных результат array.map.

const mapped = { data: array.map(item => ({ data: item }))};

В результате я получаю это:

{  
   "data":[  
      {  
         "data":{  
            "id":1,
            "position":3,
            "articleNumber":6
         }
      },
      {  
         "data":{  
            "id":2,
            "position":2,
            "articleNumber":7
         }
      }
   ]
}

Как я могу добавить тег ' children ', который может содержать много ' data '?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

import {Response} из '@ angular / http';

к вашим услугам: .map((item: Response) => item.json());

Теперь в вашем контроллере (component.ts) используйте .subscribe(), вы получите объект таким, какой он есть в JSON.

0 голосов
/ 06 сентября 2018

Посмотрите на эту логику:

let array = [  {  
  "id":1,
  "position":3,
  "articleNumber":6},{  
  "id":2,
  "position":2,
  "articleNumber":7}];

const mapped1 = { data: array[0]};
const mapped2 = { children: array.map((item, index) => ({ data: item }))} ;
const final = {data:[mapped1]};

final.data.push(mapped2);

console.log(final);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...