Ir al editor de JSON
JSON Formatter Viewer

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.

Esperando una entrada

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.