Как преобразовать объект к заданному виду?

Использую select2 с ajax'ом. Он требует специфичного вида возвращаемого значения.... При запросе приходит ответ вида:
{
        'result': true,
        'errors': [],
        'data': {
            'ITEMS': [
                { 'CODE': '0000121319', 'TYPE_ID': '3', 'VALUE': '15909', 'IS_PARENT': true, 'PATH': [4, 1], 'DISPLAY': 'Иваново' },
                { 'CODE': '0000130232', 'TYPE_ID': '7', 'VALUE': '19616', 'PATH': [15943, 15942, 4, 1], 'DISPLAY': 'Иваново-Вознесенская улица' },
                { 'CODE': '0000132739', 'TYPE_ID': '7', 'VALUE': '20508', 'PATH': [15953, 15952, 4, 1], 'DISPLAY': 'Иваново-Вознесенская улица' },
                { 'CODE': '0001077978', 'TYPE_ID': '7', 'VALUE': '303398', 'PATH': [302284, 83, 1], 'DISPLAY': 'Ивановой улица' }
            ],
            'ETC': {
                'PATH_ITEMS': {
                    '4': { 'CODE': '0000028027', 'TYPE_ID': '2', 'DISPLAY': 'Ивановская область', 'CHILD_CNT': '22', 'VALUE': 4 },
                    '1': { 'CODE': '0000028023', 'TYPE_ID': '1', 'DISPLAY': 'Россия', 'CHILD_CNT': '84', 'VALUE': 1 },
                    '15943': { 'CODE': '0000130025', 'TYPE_ID': '3', 'DISPLAY': 'Родники', 'CHILD_CNT': '270', 'VALUE': 15943 },
                    '15942': { 'CODE': '0000129989', 'TYPE_ID': '5', 'DISPLAY': 'Родниковский район', 'CHILD_CNT': '1', 'VALUE': 15942 },
                    '15953': { 'CODE': '0000132736', 'TYPE_ID': '3', 'DISPLAY': 'Южа', 'CHILD_CNT': '142', 'VALUE': 15953 },
                    '15952': { 'CODE': '0000132735', 'TYPE_ID': '5', 'DISPLAY': 'Южский район', 'CHILD_CNT': '1', 'VALUE': 15952 },
                    '302284': { 'CODE': '0001077937', 'TYPE_ID': '3', 'DISPLAY': 'Саки', 'CHILD_CNT': '143', 'VALUE': 302284 },
                    '83': { 'CODE': '0000028114', 'TYPE_ID': '2', 'DISPLAY': 'Крым', 'CHILD_CNT': '26', 'VALUE': 83 }
                }
            }
        }
    }


Вернуть надо объект такого типа:

{
  "results": [
    {
      "id": 1,
      "text": "Option 1"
    },
    {
      "id": 2,
      "text": "Option 2"
    }
  ],
  "pagination": {
    "more": true
  }
}


Как выполнить преобразование?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
Здесь декодить ничего не надо.

let o = {
    result: [],
    pagination: {
        more: true
    }
}

response.data.ITEMS.forEach((item, i) => o.result.push( {id: i + 1, text: item} ))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 12:53
1000 руб./за проект
19 апр. 2024, в 12:41
8000 руб./за проект
19 апр. 2024, в 12:05
1500 руб./в час