Idealmente, encontre uma biblioteca JSON no seu idioma na qual você possa alimentar alguma estrutura de dados apropriada e deixe-a se preocupar com como escapar de coisas . Vai mantê-lo muito mais saudável. Se, por qualquer motivo, você não tiver uma biblioteca no seu idioma, não quiser usá-la (eu não sugeriria isso¹) ou estiver escrevendo uma biblioteca JSON, continue lendo.
Escape de acordo com a RFC. JSON é muito liberal: Os únicos caracteres que você deve escapar são \
, "
e códigos de controle (nada menos do que U + 0020).
Essa estrutura de escape é específica para JSON. Você precisará de uma função específica JSON. Todas as fugas podem ser escritas como \uXXXX
onde XXXX
está a unidade de código UTF-16¹ para esse caractere. Existem alguns atalhos, como \\
, que também funcionam. (E eles resultam em uma saída menor e mais clara.)
Para detalhes completos, consulte o RFC .
O escape de JSON é construído em JS, então ele usa \uXXXX
, onde XXXX
está uma unidade de código UTF-16. Para pontos de código fora do BMP, isso significa codificar pares substitutos, o que pode ser um pouco complicado. (Ou, você pode simplesmente gerar o caractere diretamente, pois o JSON codificado para é texto Unicode e permite esses caracteres específicos.)
'
, estará condenado desde o início: as cadeias JSON só podem ser cercadas"
. Veja ietf.org/rfc/rfc4627.txt .