Validador de JSON
Comprueba si un JSON cumple el estándar y, si no, descubre dónde está el fallo: línea, columna, el fragmento señalado y una explicación clara en español de qué falta o sobra.
Cómo usar el validador
Pega o escribe el JSON: la validación es instantánea. El ejemplo cargado tiene un error a propósito (una coma después del último elemento de la lista), así que verás cómo se muestra un fallo: el número de línea y columna, el mensaje y el fragmento con una marca ^ bajo el carácter problemático.
Si el error es de los típicos al copiar código de JavaScript o Python, aparece el botón Intentar reparar, que corrige y vuelve a formatear el documento. Cuando el JSON sea válido, puedes embellecerlo o minificarlo con el formateador de JSON.
Qué comprueba exactamente
La herramienta usa un analizador propio que sigue la gramática de la especificación JSON (RFC 8259 / ECMA-404) carácter a carácter, en lugar del mensaje genérico del navegador, que cambia entre Chrome, Firefox y Safari y a veces ni siquiera indica la posición. Verifica:
- Que haya un único valor raíz (objeto, lista, texto, número,
true,falseonull) y nada después. - Que las claves y los textos vayan entre comillas dobles y que las secuencias de escape sean válidas:
\",\\,\/,\b,\f,\n,\r,\ty\uXXXX. - Que no haya caracteres de control sin escapar (un salto de línea literal dentro de un texto es inválido).
- Que los números tengan forma correcta: sin ceros a la izquierda (
007), sin punto final (1.), sin+inicial y sinNaNniInfinity. - Que cada
{y[se cierre, con comas entre elementos y sin coma final.
Además avisa de las claves duplicadas dentro de un mismo objeto, que son sintácticamente aceptables pero casi siempre un error: JSON.parse en JavaScript y json.loads en Python se quedan en silencio con el último valor.
Ejemplos de errores y su mensaje
| Entrada | Diagnóstico |
|---|---|
{"a": 1,} | Coma final antes de «}» (columna 9) |
{"a": 1 "b": 2} | Se esperaba «,» o «}»: falta una coma entre propiedades |
{nombre: "Ana"} | Las claves deben ir entre comillas dobles |
{"activo": True} | Valor no válido «True»: en JSON usa true |
{"cp": 08001} | Los números no pueden empezar por 0: guarda los códigos postales como texto |
{"a":1}{"b":2} | Contenido después del final: envuelve varios objetos en una lista |
El caso del código postal es frecuente en España, México o Colombia: valores como 08001 o los números de teléfono con prefijo deben ir entre comillas porque son identificadores, no cantidades. Lo mismo ocurre con los identificadores de más de 15 cifras.
JSON Lines, JSONC y otros formatos parecidos
- JSON Lines (.jsonl / NDJSON): un objeto JSON por línea, típico en logs y exportaciones. El validador lo rechaza como documento único («contenido después del final»); valida cada línea por separado o conviértelo en una lista.
- JSONC: JSON con comentarios (configuración de VS Code,
tsconfig.json). No es JSON estándar. - JSON5: admite comillas simples, claves sin comillas, comas finales y hexadecimales. Muchas herramientas no lo aceptan.
Si el JSON viene dentro de un token, extráelo con el decodificador de JWT; si viene codificado, pásalo antes por el decodificador Base64 o por decodificar URL. Para incrustar un JSON dentro de una cadena de código, el escapador de cadenas añade las barras necesarias.
El texto se analiza en tu navegador; no se envía a ningún servidor, así que puedes validar configuraciones con claves o datos internos.
Preguntas frecuentes
¿Cómo sé si mi JSON es válido?
Pégalo en el cuadro: si es correcto verás «JSON válido» con el número de valores y niveles; si no, la línea y la columna del primer error y qué se esperaba en ese punto.
¿Por qué la línea del error no es donde está el fallo real?
El analizador informa del primer carácter que no puede interpretar. Si olvidas cerrar una comilla o un corchete, el problema se detecta más adelante. Revisa también la línea anterior a la indicada.
¿Las claves duplicadas hacen que un JSON sea inválido?
No según la sintaxis: la norma RFC 8259 dice que los nombres «deberían» ser únicos, pero no lo exige. En la práctica casi todos los lectores conservan solo el último valor, así que la herramienta lo marca como aviso.
¿Qué hace el botón «Intentar reparar»?
Corrige automáticamente los errores típicos de copiar objetos de JavaScript o Python: quita comentarios y comas finales, cambia comillas simples por dobles, pone comillas a las claves y traduce True, False y None. Revisa el resultado antes de usarlo.
¿Se admite JSON con comentarios (JSONC o JSON5)?
No como válido, porque el estándar JSON no admite comentarios. Archivos como tsconfig.json o los ajustes de VS Code usan JSONC; para validarlos como JSON estricto usa «Intentar reparar» para quitar los comentarios.