загрузить json-ответ

Кажется, я не могу сделать ответ объектом json.

функция ajax (параметр URL для загрузки) повторяет ответ следующим образом:

echo json_encode(array(
  'foo'    => 3434,
  'error'  => 'omg error',
));

exit;

и в событии FileUploaded я оцениваю это:

var json = eval('(' + response + ')');
console.log(json);  

Но я получаю сообщение об ошибке

Uncaught SyntaxError: неожиданный идентификатор


person Alex    schedule 28.11.2011    source источник
comment
Вы можете опубликовать строку json? Вы уверены, что ответ содержит это?   -  person rob    schedule 28.11.2011
comment
хорошо, проблема была в параметре функции, который на самом деле является объектом, а ответ - свойством :| нравится response.response   -  person Alex    schedule 28.11.2011
comment
Должен ли pluload в заголовке вопроса быть загруженным?   -  person Pointy    schedule 28.11.2011
comment
нет, это скрипт plupload...   -  person Alex    schedule 28.11.2011


Ответы (2)


Попробуйте использовать метод jQuery parseJSON.

var json = $.parseJSON(response);
person ShankarSangoli    schedule 28.11.2011
comment
Я думаю, что внутри он должен использовать сам eval, но лучше всего использовать $.parseJSON - person ShankarSangoli; 28.11.2011
comment
есть также JSON.parse, который не требует jquery, хотя для него требуется либо современный браузер, либо библиотека Crockford JSON. - person rob; 28.11.2011
comment
Роб, если вы используете plupload, вы уже ссылались на jQuery, так почему бы вам не использовать его?! - person Stephen Kennedy; 25.03.2012
comment
текущая версия plupload не зависит от jQuery. - person mindplay.dk; 21.05.2013

Начиная с версии 3.0 jQuery, $.parseJSON(response) устарело.

Из документов:

Начиная с jQuery 3.0, $.parseJSON устарел. Вместо этого для анализа строк JSON используйте собственный метод JSON.parse.

Ответ на вышеуказанный вопрос таков:

var json = JSON.parse(response);
person Bird87 ZA    schedule 12.03.2019