Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.07.2011, 21:32
Новичок на форуме
Отправить личное сообщение для tomatosbass Посмотреть профиль Найти все сообщения от tomatosbass
 
Регистрация: 17.07.2011
Сообщений: 4

Не могу обработать JSON
Здравствуйте.

Мне нужно отправить POST-запрос на сервер, получить ответ в JSON, обработать его и дальше работать с полученной информацией. Но все обрывается на стадии обработки JSON.

Вот код:
var senddata = $('#search_form').serialize();
alert(senddata);
$.post('http://example.ru/', senddata, function(data){
alert("Отпрвил!");
var res = eval('('+data.sabre_flights+')');
alert (res);


Так вот, после eval() res ввозращает значение undefined. Пробовал parseJSON - он возвращает null, для data.sabre_flights или undefined для data.sabre_flights[0]. Если вместо data.sabre_flights указать просто data, то ошибка parse error.

Что я делаю не так?
Ответить с цитированием
  #2 (permalink)  
Старый 17.07.2011, 21:37
Новичок на форуме
Отправить личное сообщение для tomatosbass Посмотреть профиль Найти все сообщения от tomatosbass
 
Регистрация: 17.07.2011
Сообщений: 4

Вот ссылка на содержимое переменной data. Она очень объемная, поэтому сюда не влезло
http://narod.yandex.ru/disk/19302073001/data.html
Ответить с цитированием
  #3 (permalink)  
Старый 18.07.2011, 01:25
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

попробуйте указать тип данных, которые вы присылаете с сервера. насколько я понял, - это javascript.
$.post(url, data, callback, 'script')
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2011, 02:28
Новичок на форуме
Отправить личное сообщение для tomatosbass Посмотреть профиль Найти все сообщения от tomatosbass
 
Регистрация: 17.07.2011
Сообщений: 4

К сожалению не помогло. Но я приблизился к разгадке.

Я сделал некоторые изменения

function send(){

var senddata = $('#search_form').serialize();
alert(senddata);
$.post('http://example.ru/, senddata, function(data){
alert("Отпрвил!");
var res = eval(data);
//var test = jQuery.parseJSON(sabre_flights); -  по прежнему не работает
//var test = eval('(' + sabre_flights + ')'); -  по прежнему не работает
alert (sabre_flights); - теперь выводит [object Object],[object Object],...

});

}


Т.е. переменные из ответа инициализировались, но парсер JSON'a все же не работает
Ответить с цитированием
  #5 (permalink)  
Старый 18.07.2011, 03:10
Новичок на форуме
Отправить личное сообщение для tomatosbass Посмотреть профиль Найти все сообщения от tomatosbass
 
Регистрация: 17.07.2011
Сообщений: 4

Проблема решена!

Нужно было два раза применить eval. Сначала для data, а потом для каждой переменной из нее.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка JSON menangen AJAX и COMET 0 14.05.2011 16:54
передача JSON на сервер mikeles AJAX и COMET 0 04.03.2011 11:28
Google Chrom - не могу загрузить JSON из локального файла gipard Javascript под браузер 0 10.08.2010 16:10
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10
не работает JSON в JQuery 1.4.1 mcpro jQuery 7 22.03.2010 17:56