入力に孤立サロゲートが含まれる場合、JSON.stringify
で以前は不正な形式の Unicode ストリングを返すように指定されていました。
JSON.stringify('\uD800');
// → '"�"'
「適切に形成された JSON.stringify
」提案では、孤立サロゲートのエスケープ シーケンスを JSON.stringify
で出力するように変更され、それにより出力が有効な Unicode(UTF-8 で表現可能)になります。
JSON.stringify('\uD800');
// → '"\\ud800"'
JSON.parse(stringified)
は以前と同様の結果を生成することに注意してください。
この機能は JavaScript にとって長らく待たれていた小さな修正です。これは JavaScript 開発者としての懸念事項を 1 つ軽減します。JSON ⊂ ECMAScript と組み合わせると、JSON 文字列化されたデータをリテラルとして JavaScript プログラムに安全に埋め込んだり、生成されたコードを Unicode 互換のエンコーディング(例: UTF-8)でディスクに書き込んだりできます。これは、メタプログラミングの使用例にとって非常に役立ちます。
機能のサポート #
- Chrome: バージョン 72 以降でサポート
- Firefox: バージョン 64 以降でサポート
- Safari: バージョン 12.1 以降でサポート
- Node.js: バージョン 12 以降でサポート
- Babel: サポート