На стороне сервера формирую массив вида:
[{"id":1,"name":"Алексей"},{"id":3,"name":"Валерий"}]
Как его распарсить. Приходит только такая строка от сервера. Либо как вариант могу сформировать строку вида:
{"1":{"name":"Алексей"},"3":{"name":"Валерий"}}
Но распарсить такую по мне еще сложнее.
Не понятно, какой формат Вы хотите получить. Вот пример простейшей логики:
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. Если задача Вашего приложения обрабатывать коллекции, то вполне ожидаемо, что вы будете получать массив объектов в качестве ответа.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей