Toolbit

Formateador y validador JSON

Formatea, minifica y valida JSON con errores de sintaxis precisos por línea y columna.

¿Qué es JSON?

JSON (JavaScript Object Notation) es el formato de intercambio de datos más usado en APIs web, archivos de configuración y almacenamiento de documentos. Su diseño es deliberadamente minimalista: solo seis tipos de valor — objeto, array, string, número, booleano y null — combinables entre sí sin límite de anidamiento.

A diferencia de JavaScript (de donde toma el nombre y la sintaxis), JSON es un formato de datos puro, no un lenguaje de programación: no admite funciones, comentarios, referencias circulares ni ningún tipo de lógica. Esa restricción es intencional: la especificación formal, RFC 8259, existe precisamente para que cualquier parser, en cualquier lenguaje de programación, interprete un mismo documento JSON exactamente de la misma forma.

Reglas estrictas que generan los errores más comunes

La mayoría de los errores de sintaxis en JSON provienen de hábitos que sí son válidos en JavaScript pero que la especificación de JSON prohíbe explícitamente:

  • Las claves siempre van entre comillas dobles. {name: "Ana"} no es JSON válido; tiene que ser {"name": "Ana"}. Las comillas simples tampoco están permitidas en ningún lado, ni para claves ni para strings.
  • No se permiten comas finales (trailing commas). [1, 2, 3,] es un error — la coma después del último elemento de un array o la última propiedad de un objeto no está permitida.
  • No hay comentarios. Ni // ni /* */. Si un archivo de configuración necesita comentarios, probablemente JSON no sea el formato adecuado para ese caso (formatos como YAML o JSON5 sí los permiten, a costa de renunciar a la portabilidad universal de JSON).
  • Los números no pueden tener ceros a la izquierda. 01 es inválido; tiene que ser 1 o 1.0. Tampoco se permite +5 (el signo + explícito no es válido, solo - para negativos).
  • Los strings solo aceptan un conjunto específico de secuencias de escape: \", \\, \/, \b, \f, \n, \r, \t, y \uXXXX para cualquier carácter Unicode por su código hexadecimal de 4 dígitos.

Por qué el mensaje de error de JSON.parse() a veces no ayuda

Cuando JSON.parse() falla, el mensaje de error que produce varía según el motor de JavaScript que lo ejecute — V8 (Chrome, Node.js), JavaScriptCore (Safari) y SpiderMonkey (Firefox) reportan la posición del error de formas distintas y con distinto nivel de detalle, y ninguno está estandarizado por la especificación de JavaScript. Esta herramienta no depende de esos mensajes: analiza el JSON con su propio validador, carácter por carácter, para poder señalar siempre la línea y columna exactas donde la sintaxis deja de ser válida, sin importar en qué navegador se esté usando.

Formatear vs. minificar

Formatear (o "pretty-print") agrega indentación y saltos de línea consistentes para que la estructura del documento sea fácil de leer a simple vista — útil al inspeccionar la respuesta de una API o depurar un archivo de configuración. Minificar hace exactamente lo opuesto: elimina todo espacio en blanco no significativo para reducir el tamaño del archivo al mínimo, algo relevante cuando el JSON viaja por red o se guarda en almacenamiento con límite de tamaño. El contenido de datos —las claves, valores y su estructura— es idéntico en ambos casos; solo cambia la representación textual.

Cómo usar esta herramienta

Pega el JSON en el campo de entrada. La validación es reactiva: si hay un error de sintaxis, se muestra de inmediato con la línea y columna exactas y el carácter que lo causó. Si el JSON es válido, puedes formatearlo con la indentación que prefieras (2 o 4 espacios) o minificarlo, y copiar el resultado con un clic.