Formateador y validador JSON gratuito en línea

Pega tu JSON para formatearlo, minificarlo o validarlo al instante. Todo el procesamiento ocurre en tu navegador.

Tus datos nunca salen de tu dispositivo
$

Qué es JSON y por qué se apoderó de la web

JSON (JavaScript Object Notation) es un formato de intercambio de datos basado en texto derivado de la sintaxis literal de objetos de JavaScript. Soporta seis tipos de datos (objetos, arrays, cadenas, números, booleanos y null) y nada más. Douglas Crockford especificó el formato en 2001 como una alternativa deliberadamente minimalista a XML, publicando el diseño en json.org con el objetivo explícito de hacer «la alternativa sin grasa a XML». La IETF estandarizó JSON como RFC 4627 en julio de 2006, lo refinó como RFC 7159 en marzo de 2014, y de nuevo como RFC 8259 en diciembre de 2017 (STD 90 actual, el estándar activo, también publicado en paralelo como ECMA-404). La conquista de JSON del plano de datos de la web ocurrió aproximadamente entre 2008 y 2014: a medida que las single-page apps y los clientes móviles crecieron, las cargas útiles XML verbosas que usaban las APIs anteriores fueron reemplazadas por JSON. Para 2026 prácticamente toda API REST pública se documenta en JSON; XML sobrevive en formatos de documento e integración empresarial pero JSON posee la economía de las APIs. Esta herramienta lee JSON, lo valida contra la spec, y lo reemite formateado (con indentación, saltos de línea) o minificado (espacios en blanco eliminados).

Lo que «Format JSON» realmente hace

JSON es insensible a los espacios en blanco a nivel de spec, un parser lee {"name":"Alice","age":30} de forma idéntica a la forma indentada multilínea. La diferencia visible es puramente para los lectores humanos. El formateo (también llamado «pretty-print» o «embellecido») inserta indentación entre niveles anidados, coloca cada propiedad en su propia línea, y añade espacio en blanco después de los dos puntos entre clave y valor. Minificar hace lo inverso: elimina cada byte de espacio en blanco excepto dentro de literales de cadena. Las respuestas HTTP de producción típicamente se minifican para ahorrar ancho de banda (gzip y Brotli en el borde del CDN se encargan del resto); durante el desarrollo la versión formateada es lo que se lee. Las convenciones de formateo estándar: 2 espacios por nivel de indentación (el predeterminado web moderno, predeterminado de Prettier, norma del ecosistema JavaScript), 4 espacios para bases de código que siguen convenciones de inspiración Python, o 1 tabulación para proyectos que prefieren indentación con tabulación. JSON.stringify() en JavaScript toma un entero o cadena como segundo argumento controlando exactamente esto, JSON.stringify(data, null, 2) produce salida indentada a 2 espacios. Esta herramienta expone las mismas tres opciones.

JSON es estricto, las reglas que hacen tropezar a la gente

La gramática de JSON es famosamente intransigente. Las claves de objeto deben ir entre comillas dobles (las comillas simples no son legales). Los valores de cadena deben usar comillas dobles. Sin comas finales tras la última propiedad de un objeto o el último elemento de un array, fuente frecuente de sorpresa para desarrolladores JavaScript porque JS mismo acepta comas finales. Sin comentarios: a diferencia de YAML o JavaScript, JSON no tiene sintaxis de comentarios. Sin valor undefined: JSON solo tiene null; intentar codificar el undefined de JavaScript en JSON elimina la propiedad por completo. Los números deben estar en forma decimal JSON: sin ceros iniciales (007 ilegal), sin hex (0x7F ilegal), sin Infinity ni NaN. Las cadenas deben ser UTF-8 válido: la mayoría de los parsers toleran problemas de pares sustitutos UTF-16 pero la spec exige Unicode bien formado. Las claves duplicadas son técnicamente válidas según la spec pero producen comportamiento indefinido en la mayoría de los parsers (el último valor suele ganar). Varias variantes de JSON relajan estas reglas: JSON5 (Aseem Kishore, 2012) permite comas finales, comillas simples, comentarios y otras relajaciones ergonómicas; JSONC (usado por tsconfig.json de VS Code y similares) es JSON con comentarios de línea estilo C permitidos; HJSON apunta a la amabilidad humana con claves entre comillas opcionales. Ninguno es JSON propiamente dicho, necesitan sus propios parsers, y la mayoría de las herramientas de producción esperan JSON estricto según RFC 8259.

Donde el JSON formateado se gana el sueldo

JSON en el ecosistema de herramientas más amplio

Para flujos de trabajo en línea de comandos, jq (Stephen Dolan, primer lanzamiento en 2012) es el procesador JSON canónico, un binario pequeño y enlazado estáticamente que maneja formateo (jq .), filtrado (jq '.users[] | .email'), transformación, y consultas complejas con su propio lenguaje de expresiones conciso. La biblioteca estándar de Python incluye python -m json.tool para pretty-printing en un solo paso. El JSON.stringify(obj, null, 2) integrado de JavaScript es el formateador más rápido en navegador/en Node. JSON Schema (draft 2020-12 actual, editado por Henry Andrews, Austin Wright, Greg Dennis y otros) proporciona un vocabulario para declarar qué forma debe tener un documento JSON (restricciones de tipo, propiedades requeridas, validadores de formato, lógica condicional) y es el estándar para validación de contratos de API, especificaciones OpenAPI 3.x, validación de configuración, y generación de formularios basados en JSON. JSONPath (Stefan Goessner, 2007, ahora estandarizado como RFC 9535 en febrero de 2024) es el lenguaje de consulta similar a XPath para JSON, usado por el subconjunto más simple de jq y por herramientas como Postman, jsonpath-ng (Python), y la AWS CLI. JSON-LD (Recomendación W3C, versión 1.1 actual publicada en julio de 2020) extiende JSON con convenciones de datos enlazados de la web semántica y es el formato que Google recomienda para el marcado de datos estructurados en páginas web. JSON Patch (RFC 6902) y JSON Merge Patch (RFC 7396) definen formatos de diff/patch estandarizados para documentos JSON.

Vista Tree, por qué importa

Un documento JSON pretty-print de tamaño incluso moderado (unos pocos cientos de líneas) es difícil de navegar como texto plano. La vista tree de esta herramienta colapsa cada objeto y array en un nodo expandible, te deja hacer clic para ver solo los niveles que te importan, y muestra la expresión JSONPath de cualquier nodo en el que hagas clic. La función de ruta-al-clic es el puente práctico entre «puedo ver el valor que quiero en el documento» y «puedo escribir código que acceda a ese valor», pega la ruta en jq, en una consulta JSONPath, en notación de corchetes de JavaScript, en una aserción de test de Postman. Para respuestas de API profundamente anidadas (Stripe, Shopify, Salesforce, cualquier cosa con modelos de dominio ricos), vista tree + copia de ruta es el flujo de trabajo que pasa de «veo el campo» a «tengo la expresión de acceso» en dos clics.

Privacidad: validación solo en el navegador

El JSON pegado en un formateador es frecuentemente datos de producción reales, respuestas de API con identificadores de usuario, tokens de sesión, IDs internos de entidad, valores de configuración que incluyen URLs de endpoints y feature flags. Los formateadores JSON del lado del servidor toman una copia de cada entrada en sus logs. Esta herramienta parsea tu JSON con el JSON.parse() integrado del navegador, recorre la estructura resultante en JavaScript, y la reemite como cadena, todo dentro de tu pestaña del navegador. Verifica en la pestaña Red de DevTools mientras haces clic en Format (no se dispara ninguna petición), o pon la página sin conexión (modo avión) tras cargarla y el formateador sigue funcionando. Seguro para respuestas de API de producción, configuración interna, JSON que contenga tokens o claves, o cualquier documento que no quisieras ver copiado en el disco duro de un extraño.

Preguntas frecuentes

¿Por qué falla la validación de mi JSON?

Los errores más comunes: comas finales tras la última propiedad/elemento (legales en JavaScript y JSON5, ilegales en JSON estándar); comillas simples en lugar de dobles (JSON requiere " únicamente); claves no entrecomilladas (los literales de objeto JavaScript permiten {name: "Alice"} pero JSON requiere {"name": "Alice"}); comentarios (JSON no tiene sintaxis de comentarios, usa JSON5 o JSONC si los necesitas); valores undefined (JSON solo tiene null); corchetes/llaves faltantes; flotantes especiales como NaN o Infinity (ilegales en JSON). El mensaje de error del validador da la línea y la columna; revisa ahí primero.

¿Cuál es la diferencia entre formatear y minificar?

Format añade indentación, saltos de línea y espaciado para hacer el JSON legible; minify elimina todo espacio en blanco innecesario para hacerlo lo más pequeño posible. El contenido de datos real es idéntico, los parsers JSON ignoran los espacios en blanco a nivel sintáctico. Usa formateado para desarrollo, depuración y revisión de código; usa minificado para transmisión HTTP, JSON embebido en bundles de JavaScript, o cualquier contexto donde los bytes importan. La infraestructura moderna (gzip en respuestas HTTP, Brotli en el borde del CDN) comprime JSON agresivamente así que la diferencia de ancho de banda es menor de lo que parece, pero el minificado sigue siendo ligeramente más pequeño y más rápido de parsear.

¿Hay un límite de tamaño?

Sin tope estricto, pero los límites prácticos dependen de la memoria del navegador. Los archivos hasta ~10 MB se formatean y validan en mucho menos de un segundo en dispositivos modernos; los archivos en el rango de 50-100 MB pueden congelar brevemente la pestaña mientras JSON.parse() recorre la estructura. Para JSON muy grande (gigabytes, típico de exports grandes de API o dumps de logs NDJSON), las herramientas de línea de comandos (jq, python -m json.tool, node -e) los manejan mejor porque pueden hacer streaming en lugar de cargar todo en memoria.

¿Qué hace «Sort Keys» y cuándo debería usarlo?

«Sort Keys» alfabetiza las claves de cada objeto recursivamente. La semántica de los datos no cambia (el orden de las claves de un objeto JSON es técnicamente indefinido según la spec, aunque la mayoría de los parsers preservan el orden de inserción) pero la salida se vuelve canónica. Útil para diferenciar dos documentos JSON que deberían ser semánticamente equivalentes (sin ordenar, las diferencias de orden de claves producen diffs ruidosos), y para producir salidas de build reproducibles (los mismos datos siempre deberían serializarse en JSON byte-idéntico independientemente de cómo se construyeran en memoria).

¿Se suben mis documentos JSON?

No. Todo el parsing, validación, formateo, ordenamiento y renderizado de árbol ocurre en tu navegador vía JSON.parse() y JavaScript. El JSON pegado nunca cruza la red. Verifica en la pestaña Red de DevTools mientras haces clic en Format (no se dispara ninguna petición), o pon la página sin conexión (modo avión) tras cargarla. Seguro para respuestas de API propietarias, configuración interna, JSON que contenga tokens o datos de sesión, o cualquier cosa cubierta por NDA.

Herramientas relacionadas