Qué hace esta herramienta
Una cadena JSON es texto entre comillas dobles en el que algunos caracteres se escriben con una barra invertida: una comilla doble pasa a ser \", una barra invertida pasa a ser \\, un salto de línea pasa a ser \n y una tabulación pasa a ser \t. Este JSON stringify online toma tu texto y lo escribe como una cadena de ese tipo. Es lo mismo que hace JSON.stringify en JavaScript cuando le pasas una cadena.
Lo necesitas cuando un documento JSON tiene que llevar otro dentro, o cualquier texto con comillas y saltos de línea, en un solo campo. Escribir los escapes a mano es lento y fácil de hacer mal. Una sola barra invertida olvidada invalida todo el contenido.
Cómo usarlo
- Pega texto o JSON en el cuadro de la izquierda, pulsa Abrir archivo o pulsa Ejemplo.
- La cadena escapada aparece a la derecha mientras escribes.
- Elige las opciones que necesites:
- Compactar el JSON primero quita el formato del JSON válido antes de escaparlo. Viene activado.
- Poner entre comillas añade las comillas dobles exteriores. Desactívalo si vas a pegar el resultado en un sitio que ya tiene comillas.
- Escapar no ASCII como \u escribe las letras con tilde, la ñ, los símbolos y demás caracteres no ASCII como códigos
\u.
- Pulsa Copiar, o Descargar para guardar el resultado como archivo de texto.
La línea bajo los cuadros te indica si la entrada era JSON válido y cuántos caracteres tiene el resultado.
Ejemplos
Texto normal con una comilla y un salto de línea:
He said "hello"
then left.
se convierte en:
"He said \"hello\"\nthen left."
JSON con formato y Compactar el JSON primero activado:
{
"name": "Ada",
"tags": ["admin", "dev"]
}
se convierte en:
"{\"name\":\"Ada\",\"tags\":[\"admin\",\"dev\"]}"
Con Compactar el JSON primero desactivado, la sangría se mantiene y se escapa, así que { seguido de un salto de línea y "name": "Ada" queda así:
"{\n \"name\": \"Ada\"\n}"
Una ruta de Windows, en la que cada barra invertida se duplica:
"C:\\Users\\Ada\\notes.txt"
Caracteres no ASCII
JSON admite cualquier carácter Unicode dentro de una cadena, así que Café 東京 es válido tal cual:
"Café 東京"
Algunos sistemas antiguos, terminales o campos limitados por bytes solo aceptan ASCII. Con Escapar no ASCII como \u activado, el mismo texto queda así:
"Caf\u00e9 \u6771\u4eac"
La opción afecta a cualquier texto en español. Por defecto, las tildes, la ñ y los signos ¿ y ¡ se quedan como están: Año: señal ¿Qué? ¡Sí! da "Año: señal ¿Qué? ¡Sí!". Con la opción activada, la herramienta devuelve "A\u00f1o: se\u00f1al \u00bfQu\u00e9? \u00a1S\u00ed!". Lo mismo pasa dentro de un JSON: {"ciudad": "Cádiz"} compactado y escapado queda como "{\"ciudad\":\"C\u00e1diz\"}". Si el sistema de destino trabaja con UTF-8, que es lo habitual hoy, deja la opción desactivada: el resultado es más corto y se lee mejor.
Los caracteres fuera del plano multilingüe básico, como la mayoría de los emoji, se escriben con dos códigos (un par sustituto). El emoji de la cara sonriente pasa a ser "\ud83d\ude00". Cualquier analizador de JSON los convierte de nuevo en los caracteres originales.
Sin las comillas exteriores
Desactiva Poner entre comillas cuando la cadena vaya dentro de una plantilla, un campo de formulario o un par de comillas que ya existe. El texto Tab seguido de una tabulación y here sale entonces así:
Tab\there
Cómo funciona
La herramienta usa el propio JSON.stringify del navegador, así que el escape sigue exactamente el estándar JSON. Antes de eso, si Compactar el JSON primero está activado y la entrada empieza por { o [, intenta leerla como JSON. Si lo consigue, imprime el JSON sin espacios y conserva los números tal como los escribiste. Después escapa todo el texto como una sola cadena. No se envía nada a ningún servidor.
Consejos y límites
- El resultado es una cadena JSON, no una plantilla literal de JavaScript ni una cadena de shell. Las shells y algunos lenguajes necesitan además su propio entrecomillado.
- Si vuelves a pasar el resultado por la herramienta, obtienes una cadena doblemente escapada. A veces es lo que espera una API, pero normalmente es señal de un error.
- Las entradas muy grandes no son problema. El trabajo se hace en local y la velocidad depende de tu dispositivo.
Otras formas de hacerlo
JavaScript. JSON.stringify(text) devuelve la cadena escapada. Para meter un objeto dentro, usa JSON.stringify(JSON.stringify(obj)).
Python. json.dumps(text) hace lo mismo con una cadena. Pasa ensure_ascii=False para dejar los caracteres no ASCII como están, porque por defecto los escapa. Por eso, si comparas, json.dumps("Año") da "A\u00f1o" y no "Año".
jq. jq -Rs . file.txt lee un archivo entero como texto sin procesar y lo imprime como una sola cadena JSON.
Herramientas relacionadas
Para convertir una cadena escapada de nuevo en texto o JSON legible, usa JSON Unstringify. Para revisar o dar formato al JSON antes, usa el formateador JSON. Para crear JSON a partir de una hoja de cálculo, usa el convertidor de CSV a JSON.