Validar y formatear JSONErrores explicados en español

Pega un JSON para validarlo, formatearlo o minificarlo. Si falla, verás la línea y la columna del error. También explica en español mensajes como «Unexpected token <».

Lo que introduces nunca se envía a ningún sitio.

Detalles
0 caracteres / 0 B
Sangría

Qué hace este validador de JSON, además de formatear

Los programas que usan JSON muestran errores en inglés, como «Unexpected token < in JSON at position 0». Ese mensaje no dice qué ha pasado ni qué hay que cambiar.

En la pestaña «Explicar un error» pegas el mensaje y la herramienta te da su significado, las causas más habituales y cómo solucionarlo, para los errores de Chrome, Firefox, Safari, Node.js y Python.

En «Validar y formatear JSON» pegas el JSON y ves la línea y la columna del error con un fragmento de la línea. Puede reparar comas finales, comillas simples o tipográficas y otros fallos habituales, y después formatear, minificar, ordenar las claves, quitar o añadir escapes y ver el resultado como árbol.

Cuándo te sirve

fetch o axios devuelven un error de JSON

Pega mensajes como «Unexpected token <» y sabrás si te está llegando HTML, una respuesta vacía u otra causa, y cómo comprobarlo.

No sabes a qué línea corresponde «position N»

Con el mensaje de error y el JSON, la herramienta convierte la posición en línea y columna y te enseña la línea afectada.

Un JSON escrito a mano o copiado de un documento no se lee

Comas finales, comillas simples o tipográficas copiadas de Word, comentarios, espacios especiales: los detecta y los corrige.

Quieres leer la respuesta de una API

Formatea un JSON en una sola línea y recorre su estructura con la vista en árbol. Los números grandes se muestran sin perder cifras.

Cómo revisar un JSON en 4 pasos

  1. Si tienes un mensaje de error, pégalo en «Explicar un error» para ver la causa.
  2. Pega el JSON en «Validar y formatear JSON»: si hay un error, se indica la línea y la columna.
  3. Si se puede reparar automáticamente, pulsa «Aplicar la reparación al cuadro» para quedarte con el texto corregido.
  4. Elige «Formatear», «Minificar» u otra acción, y copia o descarga el resultado.

Nota: Las dos pestañas están conectadas: si pegas el mensaje de error y el JSON, la herramienta muestra en qué punto del JSON está la posición indicada.

Qué se corrige solo y qué no

  • La reparación automática corrige comentarios, comas finales, comillas simples, comillas tipográficas o angulares, claves sin comillas (también con tilde o ñ), undefined, True / False / None de Python y espacios especiales o caracteres invisibles fuera de las cadenas. Las llaves o corchetes que faltan y los dos puntos que faltan deben corregirse a mano.
  • Los comentarios no se pueden conservar, porque JSON no los admite: se eliminan al reparar.
  • «Ordenar» ordena las claves por código Unicode: las mayúsculas van antes que las minúsculas, y las letras con tilde y la ñ van después de la z.
  • Con más de unos 2 MB, la comprobación automática se desactiva para que la página no vaya lenta.
  • Las coincidencias con un mensaje de error se buscan en el texto original en inglés que dan los navegadores, Node.js y Python.

Errores de JSON más comunes: significado y causa

Mensajes habituales de los navegadores, Node.js y Python, con su significado y su causa más frecuente.

Mensaje de error (ejemplo)SignificadoCausa más frecuente
Unexpected token '<' / Unexpected token < in JSON at position 0Se está leyendo HTML, no JSONURL incorrecta (404), sesión caducada o error del servidor
Unexpected end of JSON inputEl JSON termina antes de tiempo o está vacíoRespuesta sin cuerpo o falta una llave o un corchete de cierre
"undefined" is not valid JSONSe está leyendo undefinedUna variable sin valor o una clave mal escrita
"[object Object]" is not valid JSONSe vuelve a interpretar un valor que ya es un objetoSe aplica JSON.parse al resultado de res.json()
Expected property name or '}'El nombre de una clave no cumple el formatoClave sin comillas, con comillas simples, o coma final
Expected ',' or '}' after property valueFalta una comaComa olvidada entre elementos o comilla sin escapar dentro de una cadena
Unexpected number in JSON at position NHay un número donde no se esperabaFalta una coma, o un número con coma decimal (3,14)
Bad control character in string literalHay un salto de línea o un tabulador dentro de una cadenaEl salto de línea no está escrito como \n
Unexpected non-whitespace character after JSONHay datos de más después del JSONSe lee de una vez un archivo JSON Lines
Expecting value: line 1 column 1 (char 0) (Python)No hay un valor donde debería haberloSe lee una cadena vacía o HTML

Nota: la redacción exacta del mensaje cambia según el navegador y la versión. Si el tuyo no aparece en esta tabla, pégalo en «Explicar un error» y se buscará la explicación más parecida.

Cómo localizar un error de JSON más rápido

Ideas para reducir el problema antes de empezar a buscar el fallo en el texto.

Primero comprueba qué estás leyendo

Muchas veces el fallo no es de sintaxis, sino que lo que se lee no es JSON: HTML, una cadena vacía, undefined o un objeto que ya estaba interpretado.
Antes de buscar un error en el texto, muestra con console.log el valor que pasas a JSON.parse o a res.json(), o revisa la pestaña «Red» del navegador. A menudo la causa aparece enseguida.

La posición no es una línea

El número de «at position 123» cuenta los caracteres desde el principio del texto, empezando en 0. En un JSON de una sola línea, ese número no sirve para localizar el sitio a simple vista.
Con el mensaje de error y el JSON, esta herramienta calcula la línea y la columna y muestra la línea afectada.

Los identificadores largos, mejor como cadenas

JavaScript no representa con exactitud los enteros mayores que 9.007.199.254.740.991, así que JSON.parse cambia sus últimas cifras sin avisar.
Es mejor enviar los identificadores grandes como cadenas. La herramienta detecta estos números y te avisa.

Errores típicos al preparar JSON a mano en español

Tres fallos se repiten: las comillas tipográficas (“ ”) o angulares (« ») que añaden los procesadores de texto, los decimales con coma (3,14) y las tildes y ñ que se estropean por la codificación («Ã¡»).
La herramienta los reconoce y propone una corrección o explica cómo solucionarlos.

Fallos habituales al depurar un JSON

Buscar el error en el JSON cuando lo que llega es HTML

«Unexpected token <» no indica que haya un «<» dentro del JSON, sino que en lugar del JSON ha llegado una página HTML. Revisar el contenido del JSON no lleva a ninguna parte.

💡 Ver la solución▼
Abre la pestaña «Red» de las herramientas de desarrollo del navegador y mira qué se ha recibido. Revisa la URL, la autenticación y la configuración del proxy.

Tomar el número de «position» como número de línea

La posición cuenta caracteres desde el principio del texto, así que buscarla como si fuera una línea te lleva a un punto equivocado.

💡 Ver la solución▼
Pega el mensaje de error y el JSON en la herramienta para ver la línea y la columna exactas.

Copiar un JSON de Word o de un documento y que falle por las comillas

Los procesadores de texto convierten las comillas rectas en tipográficas (“ ”) o angulares (« »), que JSON no acepta. También es frecuente escribir decimales con coma (3,14) o dejar comas finales.

💡 Ver la solución▼
Activa la reparación automática: convierte las comillas y quita las comas finales. Los decimales con coma hay que cambiarlos a punto a mano; la herramienta te avisa de dónde están.

Pegar datos confidenciales en un formateador que los procesa en un servidor

Las respuestas de una API pueden contener tokens de acceso o datos personales. Si un servicio los procesa en su servidor, pueden quedar registrados en la red o en sus logs.

💡 Ver la solución▼
Esta herramienta hace todo el proceso en tu navegador y no envía el contenido a ningún servidor.

Preguntas frecuentes sobre errores de JSON

Q.¿Qué significa «Unexpected token < in JSON at position 0»?

Q.

A. Significa que se esperaba JSON, pero lo que ha llegado empieza por «<», es decir, es HTML (una página web). Las causas más habituales son una URL de la API incorrecta que devuelve una página de error 404, una sesión caducada que redirige a la página de inicio de sesión, o un error del servidor que devuelve su propia página de error. Mira en la pestaña «Red» (Network) de las herramientas de desarrollo del navegador qué se ha recibido realmente.

Q.¿Cuál es la causa de «Unexpected end of JSON input»?

Q.

A. Aparece cuando el JSON termina antes de tiempo o está vacío. Pasa, por ejemplo, al llamar a res.json() con una respuesta sin cuerpo (como un 204 No Content), o cuando faltan llaves, corchetes o comillas de cierre. Comprueba que haya contenido antes de leerlo, o pega el JSON en esta herramienta para ver dónde falta el cierre.

Q.¿A qué línea corresponde «position 123»?

Q.

A. La posición es el número de caracteres desde el principio del texto, empezando por 0, no un número de línea. Si pegas el mensaje de error en «Explicar un error» y el JSON en «Validar y formatear JSON», la herramienta convierte esa posición en línea y columna y te enseña un fragmento de la línea afectada.

Q.¿Puede reparar un JSON con comentarios, comas finales o comillas simples?

Q.

A. Sí. La reparación automática detecta y corrige comentarios, comas finales, comillas simples, comillas tipográficas (“ ”) y angulares (« »), claves sin comillas (también con tildes o ñ), undefined, los valores True, False y None de Python, y los espacios especiales o caracteres invisibles que hayan quedado fuera de las cadenas. Te muestra la lista de cambios y no modifica el contenido de las cadenas. Las llaves o corchetes que faltan y los dos puntos que faltan hay que corregirlos a mano, para no adivinar lo que querías escribir.

Q.¿Por qué un número grande, como un identificador, cambia al formatear?

Q.

A. JavaScript solo representa con exactitud los enteros hasta 9.007.199.254.740.991 (2^53 − 1). Si un JSON contiene números mayores, JSON.parse cambia sus últimas cifras, y muchas herramientas de formateo muestran el número alterado. Esta herramienta detecta esos números, te avisa y los escribe tal como estaban. Si los procesas con un programa, lo más seguro es enviar los identificadores como cadenas.

Q.¿Cómo convierto \u00e1 en á, o al revés?

Q.

A. Si el JSON contiene secuencias como \u00e1 o \u00f1, al pulsar «Formatear» se muestran como los caracteres originales (á, ñ). Para el camino contrario, activa «Escapar tildes y ñ» y cada carácter que no sea ASCII se escribirá en formato \uXXXX, algo que puede hacer falta con sistemas antiguos.

Q.¿Por qué veo «Ã¡» o «Ã±» en mi JSON en lugar de «á» o «ñ»?

Q.

A. Es un problema de codificación: un texto guardado en UTF-8 se ha leído como Latin-1 (ISO-8859-1), y cada letra con tilde se convierte en dos caracteres. Si el texto solo tiene caracteres que se pueden recuperar, la herramienta muestra el botón «Corregir la codificación». Lo ideal es corregir el origen y leer el archivo como UTF-8.

Q.¿Puedo escribir los decimales con coma, como 3,14?

Q.

A. No. En JSON el separador decimal es el punto (3.14). Un número como 3,14 provoca un error dentro de un objeto, porque la coma se interpreta como separador de elementos; y 1.000 se lee como el número 1, no como mil. Tampoco se admiten separadores de miles. Esta herramienta te avisa cuando detecta un número con coma decimal.

Q.¿Es seguro pegar una respuesta de API con datos confidenciales?

Q.

A. Sí. La comprobación de sintaxis, el formateo y la explicación de errores se hacen en tu navegador. El contenido no se envía ni se guarda en ningún servidor.

User Feedback & Request

Tus comentarios
mejoran esta herramienta.

Cuéntanos qué funciones te gustaría tener, qué hay que corregir o qué herramienta nueva quieres ver. Un ingeniero lee cada mensaje y lo usa para orientar el desarrollo.

Enviar comentarios