Справочник по 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"]}' */
Поддержка
Смотрите также
Ссылки на источники
https://msdn.microsoft.com/en-us/library/cc836459(v=VS.85).aspx