Validador de JSON
input.json
Pega tu JSON aquí
o suelta un archivo .json en cualquier parte de esta zona
Aquí aparecerá la salida formateada.
Qué te muestra el panel de errores
Los mensajes del analizador nativo son escuetos y varían según el navegador:
Unexpected token } no te dice casi nada sobre qué cambiar. Cuando la
validación falla, aquí se informan cuatro cosas:
- Línea y columna, derivadas del desplazamiento de carácter que indicó el analizador.
- La línea de origen con un indicador bajo el carácter exacto, recortada para que el indicador siga visible incluso en una línea minificada de 4.000 caracteres.
- Qué esperaba el analizador, reescrito en lenguaje claro en lugar de la cadena cruda del motor.
- Una causa probable, inferida al inspeccionar el origen alrededor del fallo buscando los errores que se enumeran más abajo.
La línea defectuosa también se marca en el margen del editor, y Ir al error coloca el cursor sobre el carácter para que lo corrijas y veas cómo el estado pasa a válido mientras escribes.
Todas las causas habituales, con su solución
Coma final
Válida en JavaScript, no válida en JSON. El analizador informa de que esperaba un nombre de propiedad o un valor, porque tras una coma exige otro miembro.
{ "a": 1, "b": 2, } ✗
{ "a": 1, "b": 2 } ✓
Comillas simples
Las cadenas JSON van entre comillas dobles, tanto en claves como en valores. Sin excepciones.
{ 'name': 'ada' } ✗
{ "name": "ada" } ✓
Nombres de propiedad sin comillas
Los literales de objeto de JavaScript admiten identificadores desnudos como claves; JSON no. Es la razón más frecuente por la que un fragmento copiado del código fuente no valida.
{ name: "ada" } ✗
{ "name": "ada" } ✓
Comentarios
JSON no tiene sintaxis de comentarios, y es deliberado. Si necesitas anotaciones en un archivo
de configuración, usa una clave "_comment" o un formato que los admita, como
JSON5, YAML o TOML. Reparar elimina los comentarios // y /* */ para
que al menos puedas leer los datos.
Literales de Python y JavaScript
True, False y None vienen de pegar un
repr de Python; undefined, NaN e
Infinity vienen de JavaScript. JSON tiene exactamente tres palabras clave, todas
en minúsculas: true, false y null. No hay forma de
expresar NaN ni infinito en JSON: usa null o una cadena centinela.
Caracteres sin escapar dentro de cadenas
Un salto de línea literal, un tabulador o una comilla doble sin escapar dentro de una cadena la
terminan antes de tiempo, y el error suele aparecer varios tokens después del error real.
Escápalos como \n, \t y \". Los caracteres de control
crudos por debajo de U+0020 nunca están permitidos.
Varios valores de primer nivel
Un documento JSON contiene un solo valor. Dos objetos separados por un salto de línea son NDJSON: un formato distinto y muy útil, pero que hay que analizar línea a línea. Reparar lo reconoce y envuelve las líneas en un array para que veas todo el archivo de una vez.
Válido pero arriesgado
Pasar la validación no significa que un documento sea seguro. Dos cosas son JSON legal y aun así causan problemas reales:
- Claves duplicadas. La gramática las permite; el comportamiento depende de la implementación. JavaScript conserva la última aparición, así que los datos pueden desaparecer en silencio.
- Enteros por encima de 253−1. Cualquier consumidor basado en JavaScript pierde precisión al analizarlos. Si tus identificadores son de 64 bits, serialízalos como cadenas.
Una vez que el documento valida, el visor en árbol es la forma más rápida de comprobar que la estructura es la que esperabas, y formatear lo hace revisable.
Preguntas frecuentes
¿Qué especificación de JSON se utiliza?
El analizador nativo del navegador, que implementa RFC 8259 y ECMA-404. A efectos prácticos son equivalentes, y RFC 8259 sustituye a RFC 7159 y RFC 4627. Un documento que valida aquí se analiza en Node, Python, Go y Java.
¿Comprueba mi JSON contra un JSON Schema?
No: valida la sintaxis, no la forma. Responde a «¿es esto JSON analizable?» y no a «¿cumple mi contrato?». La validación estructural contra un esquema necesita el esquema, y se ejecuta mejor en tu suite de tests que en una pestaña del navegador.
¿Por qué la columna indicada no coincide con mi editor?
Las columnas se cuentan en caracteres empezando por 1, igual que las informa el analizador. Los editores que muestran los tabuladores como varias columnas darán un número mayor en las líneas que empiezan con tabuladores. El indicador del panel de errores siempre apunta al carácter correcto.
¿Un documento vacío es JSON válido?
No. RFC 8259 exige exactamente un valor, así que un archivo vacío no es válido. null, 0, false, "", [] y {} son documentos válidos por sí mismos.
El resto de las herramientas
El mismo motor y la misma privacidad: cada página funciona por completo en tu navegador.
Formateador de JSON
Indenta JSON con 2 espacios, 4 espacios o tabuladores y copia o descarga el resultado.
Visor de JSON
Expande, contrae y busca en un árbol JSON; copia cualquier valor o su ruta.
Minificador de JSON
Elimina el espacio en blanco y comprueba el ahorro de bytes antes y después.
Embellecedor de JSON
Convierte JSON minificado o roto en una salida limpia y resaltada.