jsonObject - это строка - как конвертировать в json? - PullRequest
0 голосов
/ 21 февраля 2012

У меня странная проблема с одной из моих отправленных форм ajax… У меня есть файл, загружаемый в форму, и каким-то образом действительный объект JSON с сервера теперь является строкой…

if (typeof jsonObject == 'string')
        console.log('yes, it's a string'); //yes, it's a string

console.log(jsonObject); // { "status":"success", "data":"Updated profile successfully"}

Таким образом, без загрузки файла и enctype:multipart в форме console.log(jsonObject) возвращает >Object с атрибутами «success» и «data». С загрузкой файла в форме каким-то образом jsonObject является строкой, как вы можете видеть выше.

Есть идеи, что может вызвать это? Или как я могу преобразовать строку обратно в допустимый объект JSON?

Заранее спасибо.

Ответы [ 3 ]

6 голосов
/ 21 февраля 2012

Вы запускаете его через JSON.parse, используя json2.js , чтобы предоставить этот метод для старых браузеров.

var js_object = JSON.parse(json_string);

(И это даст вам объект JavaScript, поскольку не имеет такого понятия, как объект JSON ).

Если вы уже используете jQuery, то у него есть собственный метод абстракции - jQuery.parseJSON, который вы можете использовать вместо json2.js. Это слишком большая библиотека, которую можно загрузить только для этой функции.

3 голосов
/ 21 февраля 2012

как я могу преобразовать строку обратно в действительный объект [..]?

jsonObject = JSON.parse(jsonObject);
0 голосов
/ 21 февраля 2012

Вы можете использовать JSON.parse, который будет работать только в новой версии браузера (не будет работать в IE7-), или вы можете использовать $ jQuery.parseJSON

http://api.jquery.com/jQuery.parseJSON/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...