適切に形成された`JSON.stringify`
· 約2分
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)で生成されたコードをディスクに書き出すことが可能になります。これはメタプログラミングの用途にとって非常に便利です。