Inicio › Herramientas para desarrolladores › Escapar y desescapar JSON

Escapar y desescapar JSON

Convierte cualquier texto en un valor de cadena JSON seguro, convierte una cadena escapada con \n y \" de nuevo en texto legible o aplica stringify a un objeto JSON completo para poder incrustarlo dentro de otra cadena. Los resultados se actualizan mientras escribes.

Última actualización:

0 caracteres
Publicidad
Publicidad

Cómo usar Escapar y desescapar JSON

  1. Elige un modo: Escapar (texto a cadena JSON), Desescapar (cadena JSON a texto), Stringify JSON (objeto a cadena) o Parsear stringified (cadena de vuelta a objeto).
  2. Pega tu entrada a la izquierda. El resultado aparece a la derecha al instante.
  3. Configura las opciones, como envolver el resultado entre comillas dobles o escapar los caracteres no ASCII como \uXXXX.
  4. Pulsa Intercambiar para enviar la salida de vuelta como entrada en el modo opuesto, una forma rápida de comprobar el proceso de ida y vuelta.
  5. Copia o descarga el resultado.

Secuencias de escape de JSON

CarácterSe escapa como¿Obligatorio?
Comillas dobles "\"Sí
Barra invertida \\\Sí
Salto de línea (nueva línea)\nSí
Retorno de carro\rSí
Tabulación\tSí
Retroceso / salto de página\b / \fSí
Otros caracteres de control U+0000–U+001F\u0000 … \u001fSí
Barra /\/No (opcional)
Cualquier otro carácter, p. ej. é o 😀é, 😀No (opcional)

Solo existen estos escapes en JSON. Las secuencias que funcionan en JavaScript u otros lenguajes, como \', \x41 o \0, no son válidas en un documento JSON.

Escapar frente a stringify: un ejemplo

Al escapar el texto Say "hi" obtienes Say \"hi\", que puedes colocar entre comillas dobles en JSON: {"msg": "Say \"hi\""}.

Al aplicar stringify al objeto {"msg": "hi"} obtienes "{\"msg\":\"hi\"}": una única cadena JSON cuyo contenido es JSON. Es habitual en colas de mensajes, logs, payloads de eventos de AWS y columnas de bases de datos que guardan JSON como texto. Usa Parsear stringified para convertirlo de nuevo en un objeto legible, incluso si se aplicó stringify más de una vez.

Cómo hacerlo en código

En JavaScript, JSON.stringify(text) escapa una cadena y añade las comillas; JSON.parse(str) lo revierte. En Python usa json.dumps(text) y json.loads(s); pasa ensure_ascii=False para mantener los caracteres no ASCII tal cual. En PHP usa json_encode con JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE para evitar la salida \/ y \uXXXX.

Preguntas frecuentes

¿Qué caracteres hay que escapar en una cadena JSON?

Las comillas dobles (\"), la barra invertida (\\) y los caracteres de control de U+0000 a U+001F. El salto de línea, el retorno de carro, la tabulación, el retroceso y el salto de página tienen formas cortas (\n, \r, \t, \b, \f); los demás se escriben de \u0000 a \u001F. Todo lo demás, incluidos los emojis, puede aparecer tal cual.

¿Hay que escapar la barra / en JSON?

No. \/ está permitido pero es opcional. Algunos sistemas la escapan para que el texto </script> no pueda cerrar una etiqueta script cuando el JSON se incrusta en HTML, que es lo que hace la opción Escapar / como \/.

¿Qué diferencia hay entre escapar y aplicar stringify?

Escapar convierte texto plano en el interior de una cadena JSON. Stringify toma un valor JSON completo, lo serializa y luego lo escapa, de modo que el resultado es una cadena que contiene JSON, como JSON.stringify(JSON.stringify(obj)) en JavaScript.

¿Por qué mi cadena contiene \\n o \\\" después de desescaparla?

Se escapó dos veces, algo que ocurre cuando el JSON se guarda dentro de otra cadena JSON o en una línea de log. La herramienta lo detecta y ofrece un botón Desescapar de nuevo.

¿Cómo se tratan los emojis y los caracteres no ingleses?

Son válidos en JSON tal cual, así que se conservan por defecto. Con la opción \uXXXX se escriben como escapes UTF-16; los emojis fuera del plano multilingüe básico se convierten en un par suplente como \ud83d\ude00.

¿Se escapan las comillas simples?

No. Las cadenas JSON siempre van entre comillas dobles, así que una comilla simple no necesita escape, y \' de hecho no es válido en JSON. Al desescapar, \' se acepta y se convierte en una comilla simple normal.

¿Se envían mis datos a un servidor?

No. Todo el escape y desescape se hace en tu navegador con JavaScript.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Codificadores, hashes y criptografía →