Datos · 3 min de lectura ·
¿JSON no válido? Los 7 errores detrás de casi todos los fallos
Comas finales, comillas simples, comentarios y más: los pequeños descuidos que rompen un JSON, cómo detectarlos rápido y cómo corregir cada uno.

«Unexpected token» y «Unexpected end of JSON input» están entre los errores que más ven los desarrolladores. JSON es un formato estricto, mucho más que el JavaScript del que nació, y casi todos los fallos se deben a uno de unos pocos errores.
1. Una coma final
Una coma después del último elemento de un objeto o un array es el error número uno. JavaScript la acepta; el estándar JSON no.
{"name": "Ana", "age": 31,} ✗
{"name": "Ana", "age": 31} ✓
2. Comillas simples y 3. claves sin comillas
Todas las claves y todas las cadenas deben ir entre comillas dobles. {name: 'Ana'} es JavaScript válido pero JSON no válido; tiene que ser {"name": "Ana"}.
4. Comentarios
JSON no admite comentarios. // y /* */ son errores, algo que sorprende a quien copia de un archivo de configuración escrito en JSON5 o JSONC, como los ajustes de VS Code.
5. Valores especiales y 6. caracteres sin escapar
undefined, NaN, Infinity y las funciones no existen en JSON; usa null o un número. Dentro de una cadena, una comilla doble se escribe \" y una barra invertida \\, y un salto de línea \n. Las rutas de Windows son una trampa clásica: "C:\new" contiene un salto de línea, no una barra seguida de n.
7. Llaves o corchetes de menos o de más
Un } o ] de cierre que falta suele aparecer como error al final del texto, lejos del fallo real. Dar formato al JSON con sangría deja ver enseguida qué nivel está roto.
Errores difíciles de ver
Hay JSON no válido que en pantalla parece perfecto:
- Comillas tipográficas. El texto copiado de un procesador de textos, una app de chat o una presentación suele traer “ y ” en lugar de comillas dobles rectas. Se parecen mucho, pero JSON solo acepta el carácter " recto.
- Una marca de orden de bytes (BOM). Algunos editores de Windows guardan los archivos con un carácter invisible al principio. JSON.parse de JavaScript y json.loads de Python lo rechazan, y el error apunta a la posición 0.
- Espacios de no separación y otros caracteres invisibles pegados desde páginas web.
JSON válido que aun así causa errores
json.dumps de Python escribe NaN e Infinity por defecto, y otros analizadores los rechazan; usa allow_nan=False para detectarlo pronto. Los enteros muy grandes, como los ID de 64 bits de una base de datos, son JSON válido pero pierden precisión en JavaScript por encima de 9007199254740991, por eso muchas API los envían como cadenas. La mayoría de los analizadores admite claves duplicadas, pero el último valor gana sin avisar.
Cómo leer el mensaje de error
Los analizadores indican dónde se rindieron, no dónde está tu error. Una coma que falta suele aparecer al inicio de la clave siguiente, y un corchete de cierre que falta, al final de la entrada. Mira justo antes de la posición indicada.
{
"name": "Ana"
"age": 31 ← el error se indica aquí (línea 3)
} la coma que falta está al final de la línea 2
Encuentra el punto exacto
El validador de JSON de 4Dev comprueba tu texto según el estándar JSON (RFC 8259) e indica la línea y la columna del primer error, junto con una sugerencia de corrección. Comprueba la sintaxis, no el significado: un JSON válido puede tener un tipo incorrecto o un campo que falta para tu aplicación.