Как на чисто JS распарсить массив с JSON

187
25 ноября 2018, 20:20

На стороне сервера формирую массив вида:

[{"id":1,"name":"Алексей"},{"id":3,"name":"Валерий"}]

Как его распарсить. Приходит только такая строка от сервера. Либо как вариант могу сформировать строку вида:

{"1":{"name":"Алексей"},"3":{"name":"Валерий"}}

Но распарсить такую по мне еще сложнее.

Answer 1

Не понятно, какой формат Вы хотите получить. Вот пример простейшей логики:

var servResp = resp; // [{"id":1,"name":"Алексей"},{"id":3,"name":"Валерий"}]
var result = {};
for(var i = 0; i < servResp.length; i++) {
    result[servResp[i].id] = servResp[i].name;
}

На выходе получите объект, вида:

result = {
  '1': 'Алексей',
  '3': 'Валерий'
}

Соответственно, можно будет обращаться по ключам, чтобы получить имя:

result[1] -> Алексей

Если в качестве ключа необходимо имя - поменяйте поля id и name в цикле выше.

P.S. Если задача Вашего приложения обрабатывать коллекции, то вполне ожидаемо, что вы будете получать массив объектов в качестве ответа.

READ ALSO
Функции декораторы

Функции декораторы

Ниже приведён общий пример декоратораУ меня такой вопрос: 2й аргумент в декораторе "MyFunc" это и есть обёртка которую возвращает декоратор?

190
Vuex — как в action получить доступ к mutation из модуля c приватным namespace?

Vuex — как в action получить доступ к mutation из модуля c приватным namespace?

Из модуля products пробую получить доступ к mutations из модуля cartЭтот вариант не срабатывает

168
Ошибка &ldquo;picture should represent a valid URL&rdquo; при расшаривании в facebook

Ошибка “picture should represent a valid URL” при расшаривании в facebook

Устанавливаю на сайт скрипт ya-share2Задал все параметры, настроил разметку openGraph

183
Открытие js из Python

Открытие js из Python

я хочу сделать приложение что оно логинелось на сайте а потом жало на кнопку, проблема в том что кнопке в html выглядит так

181