Mantén la atención porque en esta división encontrarás el resultado que buscas.
Solución:
Tome su JSON y .stringify()
eso. Luego usa el .replace()
método y reemplazar todas las apariciones de n
con \n
.
EDITAR:
Hasta donde yo sé, no hay bibliotecas JS conocidas para escapar todos los caracteres especiales en un string. Pero, podrías encadenar el .replace()
método y reemplace todos los caracteres especiales como este:
var myJSONString = JSON.stringify(myJSON);
var myEscapedJSONString = myJSONString.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");
// myEscapedJSONString is now ready to be POST'ed to the server.
Pero eso es bastante desagradable, ¿no? Ingrese a la belleza de las funciones, ya que le permiten dividir el código en partes y mantener el flujo principal de su script limpio y libre de 8 encadenados. .replace()
llamadas Así que pongamos esa funcionalidad en una función llamada, escapeSpecialChars()
. Avancemos y adjúntelo a la prototype chain
de El String
objeto, por lo que podemos llamar escapeSpecialChars()
directamente en los objetos String.
Al igual que:
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");
;
Una vez que hemos definido esa función, el cuerpo principal de nuestro código es tan simple como esto:
var myJSONString = JSON.stringify(myJSON);
var myEscapedJSONString = myJSONString.escapeSpecialChars();
// myEscapedJSONString is now ready to be POST'ed to the server
Según lo sugerido por el usuario 667073, excepto reordenar primero el reemplazo de la barra invertida y arreglar el reemplazo de cotización
escape = function (str)
return str
.replace(/[\]/g, '\\')
.replace(/["]/g, '\"')
.replace(/[/]/g, '\/')
.replace(/[b]/g, '\b')
.replace(/[f]/g, '\f')
.replace(/[n]/g, '\n')
.replace(/[r]/g, '\r')
.replace(/[t]/g, '\t');
;
Al igual que usted, he estado investigando varios comentarios y publicaciones para reemplazar caracteres de escape especiales en mi JSON que contiene un objeto html dentro de eso.
Mi objetivo es eliminar los caracteres especiales en el objeto JSON y también representar el html que está dentro del objeto json.
Esto es lo que hice y espero que sea muy fácil de usar.
Primero hice JSON.stringificar mi objeto json y JSON.parse el resultado.
Por ejemplo:
JSON.parse(JSON.stringify(jsonObject));
Y resuelve mi problema y lo hace usando Pure Javascript.
Comentarios y puntuaciones
Si entiendes que ha resultado de utilidad nuestro artículo, sería de mucha ayuda si lo compartes con más juniors y nos ayudes a dar difusión a este contenido.