Перейти к основному содержимому

Хорошо сформированный `JSON.stringify`

· 1 мин. чтения
Mathias Bynens ([@mathias](https://twitter.com/mathias))

JSON.stringify ранее был определен так, что возвращал некорректные строки Unicode, если входные данные содержали одиночные суррогаты:

JSON.stringify('\uD800');
// → '"�"'

Предложение «хорошо сформированного JSON.stringify» изменяет JSON.stringify, чтобы он выводил экранированные последовательности для одиночных суррогатов, делая его вывод валидным Unicode (и представимым в UTF-8):

JSON.stringify('\uD800');
// → '"\\ud800"'

Обратите внимание, что JSON.parse(stringified) все еще производит те же результаты, что и раньше.

Эта функция — небольшое исправление, которое давно назрело в JavaScript. Это еще одна вещь, о которой не нужно беспокоиться разработчику JavaScript. В сочетании с JSON ⊂ ECMAScript это позволяет безопасно встраивать данные, сериализованные через JSON, как литералы в программы на JavaScript и записывать сгенерированный код на диск в любой совместимый с Unicode формат кодировки (например, UTF-8). Это очень полезно для случаев использования метапрограммирования.

Поддержка функции