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

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

4 ответа

Решение

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

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

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

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

Конвертировать объект 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/

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

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

Облегчает преобразование в и из объектов Json.

Другие вопросы по тегам