Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Получение JSON (https://javascript.ru/forum/jquery/17308-poluchenie-json.html)

Tmin10 13.05.2011 22:47

Получение JSON
 
Пытаясь получить данные из JSON:
$("#head").click(function(){
				$.getJSON("json.js", function(json){
  alert("JSON Data: " + json);
});
});

в файле: ["жо",["жорж санд","жорж","жо","жозе моуринью","жорик вартанов","жостово","жозе моуриньо","жожоба","жокей","ж вта газета"]]
Но ничего не получается, что не так?

Djeman 14.05.2011 09:14

alert("JSON Data: " + json);

json - это объект. Нужно указывать, какой именно элемент объекта вывести. К примеру, json.element1

Tmin10 14.05.2011 10:18

Прсто для проверки оставил так:
$("#head").click(function(){
					$.getJSON("json.js", function(json){
						alert("JSON Data: ");
					});
				});

При клике ничего не появляется.

Tmin10 15.05.2011 17:06

Что в данном коде не так, писал по мануалу?

Нашёл вот что: когда в качестве callback стоит функция function(data) {} она не отрабатывает, а когда просто alert(""), то всё нормально.

SkyLight 15.05.2011 22:05

Возможно (а даже скорее всего), формат возвращаемых данных неправильный. У формата JSON есть определенные требования.

Tmin10 15.05.2011 22:35

Проверял валидатором, всё отлично, данные выдаёт гуголь- он то не ошибается.

SkyLight 15.05.2011 22:51

А если использовать не getJSON, а, скажем, просто ajax? Тогда результат имеется?

Tmin10 16.05.2011 07:52

Вообще не работает...
Вот код:
$("#head").click(function(){
				$.ajax({
					url: "json.js",
					dataType : "json",				
					success: function (data) { 
					alert("tfdf")//data.geo.lat);					
					}
});

			});

Файл находится в той же папке, в нём:
{"geo":{"lat":"123","lon":"321"}}

walik 16.05.2011 11:26

Воспользуйтесь callback функцией error, может она скажет вам в чем ошибка:
error: function(jqXHR, textStatus, errorThrown) {
     alert(textStatus);
}


И вообще, а почему вы к JS файлу обращаетесь ? вы должны к скрипту который обрабатывается серверным языком (PHP к примеру). В этом и ошибка по моему.

Tmin10 16.05.2011 20:25

Ну это просто файл с текстом, думаю расширение неважно, да и сервер на запрос отдаёт именно text/javascript
error сейчас попробую.


Вроде нашёл причину ошибки и устранил, кажется проблемы с синтаксисом.
Теперь осталось обмануть гуголь и заставить отдать его мне результаты запроса, так как судя по фаербагу гуголь отдаёт пустой файл на запрос. Странно, любому браузеру на http://clients1.google.ru/complete/s...era&q=%E0&cp=1 отдаёт JSON, а скрипту нет...
Кстати, если в JSON объекте находится массив
["а",["анекдоты","авито","аэрофлот","авто ру","афиша","авто","афоризмы","авианова","альфа банк","акинатор"]]

как получить из него
["анекдоты","авито","аэрофлот","авто ру","афиша","авто","афоризмы","авианова","альфа банк","акинатор"]

?


Часовой пояс GMT +3, время: 00:30.