Aller au contenu principal

Un `JSON.stringify` bien formé

· Une minute de lecture
Mathias Bynens ([@mathias](https://twitter.com/mathias))

JSON.stringify était précédemment spécifié pour retourner des chaînes Unicode mal formées si l'entrée contenait des solitaires :

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

La proposition “Un JSON.stringify bien formé” modifie JSON.stringify pour qu'il génère des séquences d'échappement pour les solitaires, rendant sa sortie un Unicode valide (et représentable en UTF-8) :

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

Notez que JSON.parse(stringified) produit toujours les mêmes résultats qu'avant.

Cette fonctionnalité est une petite correction qui était attendue depuis longtemps en JavaScript. C'est une chose de moins à craindre pour les développeurs JavaScript. En combinaison avec JSON ⊂ ECMAScript, elle permet d'incorporer en toute sécurité des données sérialisées en JSON comme littéraux dans les programmes JavaScript, et d'écrire le code généré sur disque dans n'importe quel encodage compatible Unicode (par exemple UTF-8). Cela est extrêmement utile pour les cas d'utilisation de métaprogrammation.

Support de la fonctionnalité