Справочник по JScript : Методы JScript : Метод JSON.stringify

смотрим также

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Содержание

Метод JSON.stringify

Преобразовывает объект JSON в текст JSON.

Синтаксис

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

Аргументы

value
Обязательный аргумент. Значение JSON. Обычно это объект или массив, который будет преобразован.
replacer
Необязательный аргумент. Функция или массив, который фильтрует и преобразует результаты.
  • Если replacer - это функция, то метод JSON.stringify вызывает функцию, передавая ключ и значение для каждого члена. Возвращаемое значение преобразуется вместо оригинального. Если функция вернула значение undefined, то такой член исключается из преобразования. Ключ для корневого члена - это пустая строка "".
  • Если replacer - это массив, то метод JSON.stringify преобразует только элементы массива с ключевыми значениями. Порядок членов такой же как порядок ключей в массиве. Массив replacer игнорируется, когда значение аргумента также находится в массиве.
space
Необязательный аргумент. Вставляет в текст JSON абзацы, пробелы, разрывы, чтобы его было удобнее читать.
  • Если аргумент space пропущен, то текст возвращается без каких либо дополнительных разделителей.
  • Если аргумент space равен числу, то оно показывает количество пробелов, которые содержит добавленный в текст отступ.
  • Если аргумент space равен непустой строке, например '\t', то такой разделитель добавляется на каждый уровень текста.
  • Если аргумент space равен строке, длина которой больше 10 символов, то как разделитель будут использоваться только ровно 10 символов.

Описание

Метод JSON.stringify возвращает строку, которая содержит преобразованный текст в формате JSON.

Исключения:

  • Неправильный аргумент replacer. Исключение возникает, когда replacer не является функцией или массивом.
  • Циклическая ссылка в значении аргумента. Она не поддерживается.

Значения, которые не имеют представления JSON, такие как undefined, не могут быть преобразованы с помощью метода JSON.stringify. В объекте они удаляются, а в массивах заменяются на null. Если значение имеет представление JSON, то то в процессе его преобразования метод JSON.stringify сначала вызывает метод toJSON. А потом работает со значением, которое вернул метод toJSON.

Строковые значения заключаются в двойные кавычки. Также некоторые символы должны экранировать обратным слэшем:

  • Цитаты (Quotation mark) - (").
  • Обратный слэш (Backslash) - (\).
  • Возвратный пробел (Backspace) - (b).
  • Символ "перевод страницы" (Formfeed) - (f).
  • Новая строка (Newline) - (n).
  • Возврат каретки (Carriage return) - (r).
  • Горизонтальная табуляция (Horizontal tab) - (t).
  • Шестнадцатиричные числа (Four-hexadecimal-digits) - (uhhhh).

Пример

В первом примере показано как используется метод JSON.stringify, чтобы преобразовать контактные данные человека в текст формата JSON. Причем, массив memberfilter задан таким образом, что только элементы фамилия и телефон будут преобразованы.

var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

var memberfilter = new Array();
memberfilter[0] = "surname";
memberfilter[1] = "phone";
var jsonText = JSON.stringify(contact, memberfilter, "\t");

/*  jsonText:
'{
    "surname": "Aaberg",
    "phone": [
        "555-0100",
        "555-0120"
    ]
}'
*/

Во втором примере показано как используется метод JSON.stringify, чтобы преобразовать массив в строку. Функция replaceToUpper переводит все буквы в заглавные.

 
var continents = new Array();
continents[0] = "Europe";
continents[1] = "Asia";
continents[2] = "Australia";
continents[3] = "Antarctica";
continents[4] = "North America";
continents[5] = "South America";
continents[6] = "Africa";

var jsonText = JSON.stringify(continents, replaceToUpper);

/* jsonText:
'"EUROPE,ASIA,AUSTRALIA,ANTARCTICA,NORTH AMERICA,SOUTH AMERICA,AFRICA"'
*/

function replaceToUpper(key, value) {
    return value.toString().toUpperCase();
}

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

var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

contact.toJSON = function(key)
 {
    var replacement = new Object();
    for (var val in this)
    {
        if (typeof (this[val]) === 'string')
            replacement[val] = this[val].toUpperCase();
        else
            replacement[val] = this[val]
    }
    return replacement;
};

var jsonText = JSON.stringify(contact);

/*jsonText:
'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}'
*/

Поддержка

JScript Version 5.8

Смотрите также

Ссылки на источники

http://msdn.microsoft.com/en-us/library/cc836459(v=VS.85).aspx

Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="http://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования