Escapando caracteres de nova linha em strings JSON com JavaScript
Strings JSON geralmente exigem a inclusão de novos caracteres de linha para facilitar a leitura. No entanto, esses caracteres podem causar problemas quando transmitidos diretamente no formato JSON. Para resolver isso, é essencial escapá-los antes de enviar a string.
Opção 1: usando JSON.stringify() e .replace()
Primeiro, converta o objeto JSON para uma string usando JSON.stringify():
var json = JSON.stringify({"value": "This \nis a test"});
Em seguida, escape os caracteres de nova linha usando .replace():
var escapedJson = json.replace(/\\n/g, "\\\\n");
Isso substitui todas as instâncias de "\n" por "\n", escapando com sucesso os caracteres de nova linha.
Opção 2: Escapando caracteres especiais usando uma função reutilizável
Para escapar de todos os caracteres especiais, incluindo caracteres de nova linha, você pode criar uma função reutilizável:
String.prototype.escapeSpecialChars = function() {
return this.replace(/\\n/g, "\\\\n")
.replace(/\\'/g, "\\\\'")
.replace(/\\"/g, '\\\\"')
.replace(/\\&/g, "\\\\&")
.replace(/\\r/g, "\\\\r")
.replace(/\\t/g, "\\\\t")
.replace(/\\b/g, "\\\\b")
.replace(/\\f/g, "\\\\f");
};
Esta função pode ser aplicada a qualquer string que precise de escape:
var json = JSON.stringify({"value": "This \nis a test"});
var escapedJson = json.escapeSpecialChars();
Ambas as opções escapam efetivamente de caracteres de nova linha em strings JSON, garantindo compatibilidade ao transmitir dados JSON.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3