JSON.stringify()

JSON часто используется для обмена данными с сервером.

При отправке данных на сервер это, как правило, строка.

Мы можем использовать метод JSON.stringify() для преобразования объекта JavaScript в строку.

Синтаксис

JSON.stringify(value[, replacer[, space]])

Описание параметра:

  • value:

    Обязательный. Значение JavaScript для преобразования (обычно объект или массив).

  • replacer:

    Необязательный. Функция или массив, используемые для преобразования результата.

    Если replacer является функцией, JSON.stringify вызовет эту функцию, передавая ключ и значение каждого элемента. Возвращаемое значение используется вместо исходного значения. Если эта функция возвращает undefined, элемент исключается. Ключом для корневого объекта является пустая строка: "".

    Если replacer является массивом, преобразуются только элементы, ключи которых присутствуют в массиве. Порядок преобразования элементов совпадает с порядком ключей в массиве. Если параметр value также является массивом, массив replacer игнорируется.

  • space:

    Необязательный. Добавляет отступы, пробелы и разрывы строк в текст. Если space — число, текст возвращаемого значения имеет отступ в указанное число пробелов на каждом уровне. Если space больше 10, текст имеет отступ в 10 пробелов. space также может быть не числом, например \t.


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

Например, мы отправляем следующие данные на сервер:

var obj = { "name":"example", "alexa":10000, "сайт":"www.example.com"};

Мы используем метод JSON.stringify() для обработки приведённых выше данных и преобразования их в строку:

var myJSON = JSON.stringify(obj);

myJSON — это строка.

Мы можем отправить myJSON на сервер:

Пример

var obj = { "name":"example", "alexa":10000, "сайт":"www.example.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Попробуйте сами »

Преобразование массива JavaScript

Мы также можем преобразовать массив JavaScript в строку JSON:

Пример

var arr = [ "Google", "Example", "Taobao", "Facebook" ]; var myJSON = JSON.stringify(arr);

myJSON — это строка.

Мы можем отправить myJSON на сервер:

Пример

var arr = [ "Google", "Example", "Taobao", "Facebook" ]; var myJSON = JSON.stringify(arr); document.getElementById("demo").innerHTML = myJSON;

Попробуйте сами »

Исключения

Разбор данных

JSON не может хранить объекты Date.

JSON.stringify() преобразует все даты в строки.

Пример

var obj = { "name":"Example", "initDate":new Date(), "site":"www.example.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Попробуйте сами »

После этого вы можете преобразовать строку обратно в объект Date.


Функции парсинга

JSON не допускает функции. JSON.stringify() удалит функции из объектов JavaScript, включая ключ и значение.

Пример

var obj = { "name":"Example", "alexa":function () {return 10000;}, "site":"www.example.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Попробуйте сами »

Мы можем избежать вышеуказанной проблемы, преобразовав функцию в строку перед выполнением функции JSON.stringify():

Пример

var obj = { "name":"Example", "alexa":function () {return 10000;}, "site":"www.example.com"}; obj.alexa = obj.alexa.toString(); var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Попробуйте сами »

Не рекомендуется использовать функции в JSON.


Поддержка браузеров

Все основные браузеры поддерживают функцию JSON.stringify():

  • Firefox 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4
Другие расширения