Преобразовать объект в строку JSON

122

jQuery.parseJSON('{"name":"John"}')преобразует строковое представление в объект, но мне нужно обратное. Объект должен быть преобразован в строку JSON. Я получил ссылку http://www.devcurry.com/2010/03/convert-javascript-object-to-json.html, но для этого нужно, чтобы json2.js был ли у jQuery собственный способ сделать это?

Куттан Суджит
источник

Ответы:

188

jQuery выполняет только некоторую проверку регулярных выражений перед вызовом собственного метода браузера window.JSON.parse(). Если он недоступен, он использует eval()или, точнее, new Function()для создания объекта Javascript.

Противоположность JSON.parse()IS , JSON.stringify()который упорядочивает объект Javascript в строку. jQuery не имеет собственных функций для этого, вы должны использовать встроенную версию браузера или json2.jsс http://www.json.org

JSON.stringify() доступен во всех основных браузерах, но для совместимости со старыми браузерами вам все равно нужен этот запасной вариант.

JANDY
источник
4
это может быть полезно:var theObject = (typeof data == "string") ? jQuery.parseJSON(data) : data;
roberthuttinger
2
@tekretic: Надеюсь, ты троллинг. Chrome реализует JSONобъект хоста с
первого
5
@jAndy: Ого, прости. Не троллинг, но ОН так неправильно. Оказывается, встроенная поддержка JSON была добавлена ​​в WebKit в середине 2009 года , что делает его поддерживаемым начиная с Chrome 3.0. Мой предыдущий, совершенно неточный комментарий был основан на половине этого устаревшего вопроса в сочетании с CMS, над которой я работаю сейчас, которая фактически заменяет window.JSON собственной библиотекой, то JSON.stringify()есть не определена. Совершенно провал по всем пунктам.
Molomby
1
@jAndy: не путай меня; : JSON.stringify "сериализует" объект, скажите, что это просто ошибка
полубит
12

Также полезен Object.toSource () для целей отладки, когда вы хотите показать объект и его свойства для целей отладки. Это общая функция Javascript (не jQuery), однако она работает только в «современных» браузерах.

Excalibur
источник
4

Преобразование объекта JavaScript в данные json

$("form").submit(function(event){
  event.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
  consol.log(jsonConvertedData);
});

Вы можете проверить данные json с помощью http://jsonlint.com

Суброто Бисвас
источник
2

Вы можете использовать отличный плагин jquery-Json:

http://code.google.com/p/jquery-json/

Упрощает преобразование в объекты Json и обратно.

Джордж Филиппакос
источник
2
Пожалуйста, рекомендуйте методы SPL вместо дополнительных логических библиотек.
Дэвид Дж. Эдди,
2
SPL = Стандартная библиотека PHP. Думаю, в этом случае это будет SJL (стандартная библиотека javascript).
Дэвид Дж Эдди
3
Речь идет о jQuery и Javascript. Это не имеет отношения к PHP, библиотекам PHP или SPL.
Джордж Филиппакос,
3
стандартные библиотеки - это стандартные библиотеки; не имеет значения язык. Я хочу сказать, что лучше рекомендовать решение, которое учит языку, а не синдрому «используйте этот плагин».
Дэвид Дж Эдди
1
Точно, зачем изобретать велосипед ... использовать стандартные возможности языка вместо «плагина», но я отвлекся.
Дэвид Дж Эдди