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 \uXXXXonde XXXXestá 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 XXXXestá 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 .