Pular para o conteúdo principal

`JSON.stringify` Bem-formado

· Leitura de um minuto
Mathias Bynens ([@mathias](https://twitter.com/mathias))

JSON.stringify anteriormente era especificado para retornar strings Unicode malformadas se a entrada contivesse algum surrogate solitário:

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

A proposta “JSON.stringify Bem-formado” altera JSON.stringify para que ele gere sequências de escape para surrogates solitários, tornando sua saída Unicode válido (e representável em UTF-8):

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

Observe que JSON.parse(stringified) ainda produz os mesmos resultados de antes.

Este recurso é uma pequena correção que já era há muito necessária no JavaScript. É uma preocupação a menos para os desenvolvedores JavaScript. Em combinação com JSON ⊂ ECMAScript, ele permite a incorporação segura de dados transformados por JSON-stringify como literais em programas JavaScript, além de possibilitar gravar o código gerado em disco em qualquer codificação compatível com Unicode (por exemplo, UTF-8). Isso é extremamente útil para casos de uso de metaprogramação.

Suporte ao recurso