Cómo corregir un JSON no válido: los 8 errores más comunes
"Unexpected token", "Unexpected end of JSON input", "Expecting property name": los errores de JSON son crípticos, pero casi todos vienen de los mismos pocos fallos. Así puedes encontrar y corregir cada uno.
Respuesta rápida
Pega el JSON en un validador de JSON para ver la línea y la columna exactas del error. Los culpables habituales son las comas finales, las comillas simples, las claves sin comillas, los comentarios y las llaves o corchetes que faltan. Corrige el primer error, vuelve a validar y repite.
Las reglas de JSON en 30 segundos
JSON (JavaScript Object Notation) se parece a JavaScript, pero es mucho más estricto:
- Las claves deben ser cadenas entre comillas dobles.
- Las cadenas solo usan comillas dobles.
- Los valores pueden ser una cadena, un número,
true,false,null, un objeto o un array. - Los elementos se separan con comas, sin coma después del último.
- Sin comentarios, sin
undefinedy sin funciones.
Encuentra el error rápido
- Abre el formateador y validador de JSON gratuito.
- Pega tu JSON o suelta un archivo .json.
- Si no es válido, el error aparece con su línea y columna. Ve directamente ahí.
- Prueba el botón Reparar, que corrige automáticamente comas finales, comillas simples, claves sin comillas y comentarios.
- Da formato al resultado con 2 espacios, 4 espacios o tabuladores, y explóralo en la vista de árbol.
Pruébalo gratis: Formateador y validador JSON
Formatea, minifica, valida y explora JSON en forma de árbol. Funciona en tu navegador, sin registro.
1. Comas finales
// ❌ No válido
{ "name": "Ana", "age": 31, }
// ✅ Válido
{ "name": "Ana", "age": 31 }
JavaScript permite una coma después del último elemento; JSON no. Es, con diferencia, el error más común, sobre todo después de borrar la última línea de un objeto.
2. Comillas simples
// ❌ No válido
{ 'name': 'Ana' }
// ✅ Válido
{ "name": "Ana" }
3. Claves sin comillas
// ❌ No válido
{ name: "Ana" }
// ✅ Válido
{ "name": "Ana" }
4. Comentarios
// ❌ No válido
{
// ajustes del usuario
"theme": "dark"
}
El JSON estándar no admite comentarios. Algunas herramientas aceptan "JSONC" (JSON con comentarios), como los archivos de configuración de VS Code, pero la mayoría de los analizadores no. Quita los comentarios o pon las notas en un campo como "_comment".
5. Comas que faltan entre elementos
// ❌ No válido
{ "a": 1 "b": 2 }
// ✅ Válido
{ "a": 1, "b": 2 }
Suele ocurrir al añadir una línea nueva y olvidar la coma en la línea anterior. El error se indica al principio del elemento siguiente.
6. Llaves o corchetes que faltan o no coinciden
// ❌ No válido: el array nunca se cierra
{ "tags": ["a", "b" }
Errores como "Unexpected end of JSON input" suelen significar que falta un } o ] de cierre, o que el texto se cortó. Dar formato al JSON con sangría hace que la estructura sea fácil de revisar.
7. Valores no válidos
// ❌ No válido
{ "price": NaN, "date": undefined, "big": 1e999, "hex": 0xFF, "zip": 01234 }
// ✅ Válido
{ "price": null, "date": null, "hex": 255, "zip": "01234" }
Los números JSON no pueden tener ceros a la izquierda, notación hexadecimal, NaN ni Infinity. Guarda los códigos postales y los teléfonos como cadenas para conservar sus ceros iniciales.
8. Caracteres sin escapar dentro de cadenas
// ❌ No válido
{ "path": "C:\Users\ana", "quote": "Dijo "hola"" }
// ✅ Válido
{ "path": "C:\\Users\\ana", "quote": "Dijo \"hola\"" }
Las barras invertidas y las comillas dobles dentro de una cadena deben escaparse con una barra invertida. Los saltos de línea reales dentro de una cadena deben escribirse como \n.
Errores que en realidad no son problemas de JSON
- "Unexpected token < in JSON at position 0": has recibido HTML en lugar de JSON. Probablemente la API devolvió una página de error o una redirección al inicio de sesión. Revisa el código de estado y la URL.
- "Unexpected end of JSON input" con una respuesta vacía: el servidor no envió nada. Revisa la petición, no el analizador.
- Caracteres invisibles: una marca de orden de bytes (BOM) o comillas tipográficas pegadas desde un procesador de textos. Vuelve a escribir las comillas o guarda el archivo como UTF-8 sin BOM.
Cómo evitar errores de JSON desde el principio
- Nunca construyas JSON a mano en el código. Usa
JSON.stringify()en JavaScript ojson.dumps()en Python. - Usa un editor que valide JSON, como VS Code, que subraya los errores mientras escribes.
- Valida las respuestas de las API con un JSON Schema en tus pruebas.
- Ordena las claves antes de comparar dos archivos JSON, para que las diferencias muestren solo cambios reales.
Preguntas frecuentes
¿Por qué mi JSON funciona en JavaScript pero no con JSON.parse?
Los objetos literales de JavaScript admiten comillas simples, claves sin comillas, comas finales y comentarios. JSON no, así que un código que parece correcto en un archivo .js falla como JSON.
¿Puede JSON tener comentarios?
No en el estándar. Formatos como JSONC y JSON5 los permiten, pero solo con analizadores compatibles con esos formatos.
¿Es seguro pegar respuestas de API en un formateador online?
Solo si no sube tus datos. Nuestro formateador lo analiza todo en tu navegador, así que los tokens y los datos personales se quedan en tu dispositivo.
En resumen
Los errores de JSON casi siempre vienen de una lista corta de fallos. Valida para encontrar la posición exacta, corrige el primer error, vuelve a validar y genera el JSON con código en lugar de a mano siempre que puedas.
¿Algo desactualizado o poco claro? Escribe a contact@ultratoolsai.com y lo corregiremos.


