100 % local: tus datos nunca salen de tu navegador

Texto a cadena JSON — pégalo en un payload

Convierte texto en un literal de cadena JSON, con comillas. Dos terminadores de línea invisibles también se escapan: el valor se pega en un curl.

Instantáneo Privado Cero cookies

Entrada Text

Salida JSON String

Qué hace esta herramienta

Tu texto se convierte en un literal de cadena JSON: comillas alrededor y cada carácter que no puede ir crudo sustituido por su escape.

  • " pasa a \", una barra invertida pasa a \\;
  • un salto de línea pasa a \n, un tabulador a \t, un retorno de carro a \r;
  • los demás caracteres de control pasan a \u00XX.

é y 😀 se quedan como están. JSON es Unicode, y una cadena legible vale más que un muro de escapes.

Dos caracteres que los codificadores normales dejan crudos

U+2028 (separador de línea) y U+2029 (separador de párrafo) salen como \u2028 y \u2029. Un codificador JSON estándar los deja literales.

Ambas escrituras son JSON válido. La escapada es más segura, por una razón histórica y todavía viva: en JavaScript antes de ES2019, esos dos caracteres eran terminadores de línea, así que un literal de cadena que contuviera uno crudo era un error de sintaxis. Todo lo que toma JSON y lo evalúa como JavaScript — un eval antiguo, un punto JSONP, un empaquetador que incrusta un archivo de datos — tropieza ahí. Escapar cuesta tres caracteres y elimina la clase entera de fallos.

Una mitad suplente suelta no produce una salida rota

Un texto puede contener la mitad de un par suplente: una cadena cortada en el índice equivocado, un campo truncado salido de una base de datos. La salida lo escapa como \ud800 en vez de emitirlo crudo.

Importa porque una mitad suplente cruda no puede codificarse en UTF-8 en absoluto. Escapada, el JSON sigue siendo válido, sigue siendo UTF-8, y el carácter dañado queda visible en la salida en lugar de corromper el archivo que la lleva.

Qué no se escapa

La barra inclinada. \/ es JSON legal, y algunos codificadores la emiten para que </script> nunca aparezca en la salida, pero no es obligatorio y vuelve el resultado menos legible.

Si incrustas el resultado en una página HTML, trata </script> a nivel HTML: un analizador HTML cierra el elemento en esa secuencia dondequiera que aparezca, y ningún escape JSON cambia eso.

Privado por diseño

Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.

Preguntas frecuentes

¿Por qué é no se escapa como \u00e9?
Porque JSON es un formato Unicode y `é` es un carácter legal dentro de una cadena. La codificación del documento lo transporta. Escapar todo lo no ASCII solo hace falta cuando el canal es solo ASCII — para eso está `ensure_ascii=True` en Python — y por lo demás agranda la salida y la vuelve menos legible sin ganancia.
¿Por qué la salida incluye las comillas?
Porque una cadena JSON *son* las comillas más el contenido escapado. Darte solo el interior invitaría a pegarlo donde faltan las comillas, que es justo donde el escape deja de ser correcto. Puedes quitarlas si tu plantilla ya las aporta.
¿Puedo pegar esto directamente en una etiqueta <script>?
No a ciegas. El resultado es JSON válido, y los dos terminadores de línea que rompían los literales de JavaScript están escapados. Pero un analizador HTML sigue cerrando el elemento script en el primer `</script>` del código, esté dentro de una cadena o no: un texto con esa secuencia exige tratarla aparte, a nivel HTML.
` del código, esté dentro de una cadena o no: un texto con esa secuencia exige tratarla aparte, a nivel HTML."}}]}

Convertidores relacionados