JSON escape y unescape: maneja datos anidados correctamente
2024-04-15
Colas, logs y columnas de base de datos suelen guardar JSON como string dentro de JSON. Entender escapes es clave para desempaquetar estos payloads.
Caracteres que debes escapar
En strings: ", \, y caracteres de control como \n y \t.
{
"quote": "He said \"Hello\"",
"path": "C:\\temp\\data"
}JSON anidado como string
Primero parsea el exterior y luego aplica JSON.parse al campo string interno.
{ "payload": "{\"id\":1,\"name\":\"Alice\"}" }Doble escape en logs
No cuentes barras invertidas a mano: parsea repetidamente hasta llegar a un objeto o a la cadena esperada.
Desescape seguro
Usa JSON.parse, no reemplazos con regex. Tras parsear datos no confiables, valida la estructura (por ejemplo claves __proto__).
Otros contextos (SQL, shell)
Escapar JSON no es lo mismo que quoted strings en SQL o shell. Crea objetos, aplica JSON.stringify y luego el escape especifico del contexto destino.
Flujo recomendado
Pegar -> parsear -> formatear -> parseo interno en campos que sigan como string -> validacion de negocio.