Solución de problemas · Desarrolladores
JSON inválido: los 5 errores más comunes
Pegas tu JSON y recibes «SyntaxError: Unexpected token». Parece correcto a simple vista, pero el parser se niega a tragarlo. Es frustrante porque el error suele estar en un carácter que tus ojos pasan por alto.
JSON es deliberadamente estricto: lo válido en JavaScript puede ser un error en JSON puro. Conocer los cinco errores que causan la gran mayoría de los fallos te permite diagnosticar en segundos en lugar de revisar línea por línea.
Error 1: la coma sobrante (trailing comma)
El error número uno. En JavaScript puedes escribir {"a": 1,}, pero JSON prohíbe la coma final: invalida todo el documento.
Cómo detectarlo: el mensaje suele apuntar a la llave o corchete de cierre tras la coma («Unexpected token }»). Mira justo antes de cada } y ]: si hay una coma, ese es el culpable.
Elimínala. Y configura tu editor para resaltar las trailing commas en JSON o usa un linter que las detecte al guardar.
Error 2: comillas simples o claves sin comillas
En JSON, claves y strings llevan comillas dobles sin excepción: {'nombre': 'Ana'} es inválido; {"nombre": "Ana"} es lo correcto.
Cómo detectarlo: el error aparece al inicio de la clave o valor («Unexpected token '»). Típico al copiar objetos desde JavaScript o la consola del navegador.
Sustituye las simples por dobles. Ojo con los apóstrofes dentro de textos («l'hôpital»): con comillas dobles no necesitan escaparse. Cuando copies desde JavaScript, usa JSON.stringify() para obtener la representación válida.
Error 3: comentarios en JSON puro
JSON no admite comentarios: ni // ni /* */. Si tu archivo los tiene (porque lo editaste como JavaScript o viene de un JSONC), el parser fallará.
Cómo detectarlo: «Unexpected token /» justo donde empieza el comentario. Frecuente en configuraciones copiadas de ejemplos de VS Code, que usa JSON con comentarios.
Elimínalos antes de procesar el archivo. Para intercambio entre sistemas, el JSON debe ir limpio. Si necesitas documentar, mantén el archivo de trabajo con comentarios y genera el final sin ellos.
Error 4: caracteres invisibles y codificación
El BOM al inicio (UTF-8 con BOM), saltos de línea extraños o caracteres de control dentro de strings invalidan un JSON que «se ve bien».
Cómo detectarlo: el error apunta a la línea 1, columna 1 aunque todo parezca correcto, o a posiciones sin nada visible. Míralo con «mostrar caracteres invisibles» o en hexadecimal.
Guarda como UTF-8 sin BOM y escribe los saltos de línea dentro de strings como \n, no como Intro real. Configura tu editor para guardar JSON siempre en UTF-8 sin BOM.
Error 5: comillas sin escapar dentro de strings
Un valor con comillas dobles debe escaparlas: "dijo \"hola\"". Sin escapar, el parser cree que el string terminó antes de tiempo.
Cómo detectarlo: el error aparece justo después de una comilla dentro de un texto. Típico en datos generados concatenando strings a mano.
Escapa las comillas internas (\") y las barras (\\). Mejor aún: no construyas JSON concatenando texto; usa el serializador de tu lenguaje (json.dumps, JSON.stringify), que escapa todo correctamente. Regla de equipo: jamás generar JSON «a mano».
Cómo localizar el error en segundos
Pega el JSON en un formateador: la mayoría indica la línea y columna exactas del primer error. Corrige ese, valida de nuevo y repite, porque los parsers suelen reportar solo el primer fallo.
Una vez válido, la herramienta de minificar JSON de Tótem (usatotem.com/herramientas-desarrollador/minificar-json/) te da una versión compacta y garantizada como válida, ideal para producción. Y si el JSON lo genera tu código, añade un test que parsee una muestra de la salida: pilla estos errores antes de que lleguen a producción.
Herramientas gratuitas mencionadas
Minificar JSON
Elimina espacios y saltos de línea de tu JSON para reducir su tamaño.
Usar gratisFormateador JSON
Pega tu JSON y fórmatalo con la sangría que elijas (2, 4 espacios o tabulador).
Usar gratisValidador JSON
Comprueba si tu texto es un JSON válido y descubre su tipo y estructura.
Usar gratisPreguntas frecuentes
¿Por qué JSON no permite comentarios?
Fue una decisión deliberada de Douglas Crockford para mantener el formato mínimo y sin ambigüedades entre implementaciones. Existen variantes como JSONC o JSON5 que los admiten, pero el JSON estándar de intercambio no.
El error señala una línea que se ve bien, ¿qué hago?
Mira la línea anterior: el error real suele estar ahí (coma sobrante, comilla sin cerrar). Los parsers detectan el problema donde «ya no encaja», a menudo después del carácter culpable. Revisa también caracteres invisibles como el BOM.
¿Minificar puede introducir errores?
No, si el JSON de partida es válido: solo elimina espacios insignificantes sin tocar el contenido. De hecho, pasarlo por un minificador es una buena prueba de validez: si lo procesa sin quejarse, la sintaxis es correcta.
En resumen
La mayoría de los JSON inválidos se deben a cinco causas: comas sobrantes, comillas simples, comentarios, caracteres invisibles y comillas sin escapar. Sabiendo qué buscar, el diagnóstico pasa de media hora a un minuto.
Valida con herramienta antes de depurar a ojo, genera con serializadores y minifica para producción: tres hábitos que eliminan esta categoría de errores.