Показать сообщение отдельно
  #1 (permalink)  
Старый 25.02.2012, 18:31
Новичок на форуме
Отправить личное сообщение для delargo Посмотреть профиль Найти все сообщения от delargo
 
Регистрация: 25.02.2012
Сообщений: 4

Обработка массива в json
Есть ответ от сервера (переменная r ниже):
VK.Api._callbacks[3704529]({"response":[{"account_id":160_еще_цифры,"account_status":1,"access_role":"admin"}]});


Есть функция, которая обрабатывает ответ от сервера:

function doAfterGetAccounts(r){
  if(r.error) alert("Ошибка получения списка аккаунтов");
  if(r.response){
    var s = "";
    s += "lenght: " + r.response.lenght + "\n";
    var accounts = new Array();
    for(var i = 0; i < r.response.lenght; i++){ 
      s += i + " loop\n";
      accounts[i] = new Account(r.response[i].account_id, r.response[i].account_status, r.response[i].access_role);
    }
  alert(s);
  }
}


Искал в интернете, ни где нормального разъяснения не нашел.

Вопрос: почему на строчку r.response.lenght выдается ответ undefined, и, следовательно, цикл ни разу не обрабатывает массив? Как с этим бороться, чтобы получить массив элементов (в моем случае массив, содержащие один элемент, но может быть и большее количество элементов, количество которых заранее не известно)?

Мои комментарии: Я так понимаю, что новая версия JavaScript сама распарсивает JSON. Поэтому, если обращаться через r.response[0].account_id программы выдает адекватный ответ. А вот как работать с любым количеством элементов - я пока не знаю. Разве что можно попробовать конструкцию try/catch, но она не лучший выход.

Заранее благодарен.
Ответить с цитированием