обработка $.getJSON с возвращением словаря
Добрый день!
Второй день ломаю голову над следующей проблемой: есть json-данные, представленные в виде ассоциативного массива: {"BE": 7, "FR": 2, "BG": 7, "DK": 7, "HR": 7, "DE": 7, "BA": 7, "HU": 4, "FI": 7, "GR": 4, "NL": 7, "PT": 7, "NO": 7, "TR": 7, "LI": 7, "LV": 7, "LT": 7, "LU": 7, "RO": 7, "PL": 7, "CH": 7, "AD": 7, "EE": 7, "IS": 7, "AL": 7, "IT": 7, "CZ": 7, "CY": 7, "AT": 3, "IE": 7, "ES": 7, "ME": 7, "MC": 2, "RS": 7, "MK": 7, "SK": 7, "MT": 7, "SI": 3, "SM": 7, "SE": 7, "GB": 7} Есть функция, которая должна принять эти данные (использую $.getJSON) и вернуть одно из значений по ключу "country_code", передаваемому в параметрах функции, для последующего использования. Однако функция возвращает underfined. Не могу понять в чем дело. Вот мой код: function get_country_data(country_code){ var result; result=$.getJSON('geo/countries-data/'); return result[country_code]; } При этом, alert(result) возвращает "Object object" |
какой браузер? используйте хром. там есть встроенный фаербаг (f12, для просмотра/открытия)
и где вы используйте alert, измените на console.log(result) и смотрите в фаербаге что он выдаст (вкладка console) |
Проверьте синтаксис
jQuery.getJSON |
и что что оно асинхронное? так же можно создать глобальную переменную, туда пихать ответ и вывести в консоль. причем прям в консоли прописать имя переменной и он выведет ответ. nasqad, в чем здесь наркомания то?
|
ммм... если не знайте js откуда карма 125???)) (если не секрет)
|
Цитата:
|
Цитата:
|
Всем спасибо, особенно nasqad за то, что образумил и остановил это безумие (2 дня мучался :) ). После этого сообщения: "да вы наркоманы оно же ассинхронное" за 5 минут нашел новое решение.
|
SkyLight, читайте внимательней! глобальная переменная. туда пишется результат. а в консоль выводить после того как пришел ответ. вывести можно вбив в консоль имя переменной. в чем проблема??
так же можно сделать через settimeout. у меня всегда работало и работает))) просто через алерт не увидите иерархию объекта, а бывает ой как надо |
Часовой пояс GMT +3, время: 14:53. |