Gut geformtes `JSON.stringify`
JSON.stringify
wurde zuvor so spezifiziert, dass es schlecht geformte Unicode-Zeichenketten zurückgibt, wenn die Eingabe einsame Surrogate enthält:
JSON.stringify('\uD800');
// → '"�"'
Der Vorschlag „Gut geformtes JSON.stringify
“ ändert JSON.stringify
so, dass es Escape-Sequenzen für einsame Surrogate ausgibt, wodurch seine Ausgabe gültiges Unicode wird (und in UTF-8 darstellbar ist):
JSON.stringify('\uD800');
// → '"\\ud800"'
Beachten Sie, dass JSON.parse(stringified)
immer noch die gleichen Ergebnisse wie zuvor liefert.
Diese Funktion ist eine kleine, längst überfällige Korrektur in JavaScript. Sie ist eine Sorge weniger für JavaScript-Entwickler. In Kombination mit JSON ⊂ ECMAScript ermöglicht sie das sichere Einbetten von JSON-serialisierten Daten als Literale in JavaScript-Programme, sowie das Schreiben des generierten Codes auf die Festplatte in einer beliebigen Unicode-kompatiblen Codierung (z. B. UTF-8). Dies ist äußerst nützlich für Metaprogrammierungsanwendungen.