Skip to main content
Herramienta 100% gratuita

Formateador y Validador JSON

Formatea, valida, repara, convierte y compara JSON en línea. Editor completo con vista de árbol interactiva y conversión JSON/YAML/TOML

Herramienta profesional para trabajar con JSON: formatea, valida, repara errores de sintaxis, convierte a YAML/TOML y compara diferencias semánticas con vista de árbol interactiva

Formatos soportados3 formatosJSON, YAML, TOML con conversión bidireccional
Operaciones6+ accionesFormatear, minificar, validar, reparar, comparar, convertir
Vista de árbolInteractivaNavegación jerárquica con búsqueda y colapso de nodos

¿Cómo funciona el formateador JSON?

El formateador JSON opera como un parser completo que analiza sintácticamente el documento ingresado, construye un Abstract Syntax Tree (AST) interno representando la estructura jerárquica, y luego serializa ese árbol de vuelta a texto aplicando reglas de formato consistentes. El proceso comienza cuando pegas o arrastras un documento: la herramienta detecta automáticamente el formato de entrada (JSON, YAML o TOML) analizando patrones sintácticos característicos como llaves y corchetes para JSON, indentación significativa para YAML, o secciones con corchetes para TOML. Una vez identificado el formato, el parser específico (JSON nativo del navegador, parser YAML basado en js-yaml, o parser TOML basado en smol-toml) convierte el texto a una representación de objetos JavaScript en memoria. Esta representación intermedia es agnóstica del formato original, permitiendo operaciones uniformes independientemente de si el origen fue JSON, YAML o TOML. Para formatear, el serializador recorre el árbol aplicando indentación configurable (2 o 4 espacios), agrega saltos de línea después de cada elemento de array u objeto, alinea dos puntos verticalmente cuando sea posible, y preserva el orden de claves a menos que actives la opción de ordenamiento alfabético. La validación ejecuta el parser en modo estricto, capturando excepciones sintácticas y reportando la línea y columna exacta del error con contexto de los caracteres circundantes para facilitar la depuración. La función de reparación implementa heurísticas de recuperación de errores: detecta comillas faltantes buscando tokens que deberían ser cadenas, completa corchetes o llaves sin cerrar rastreando el balance de delimitadores, elimina trailing commas ilegales, y normaliza comillas simples a dobles. Después de cada corrección, re-valida el documento completo para confirmar que el resultado es sintácticamente válido. La minificación recorre el AST serializando sin espacios decorativos, eliminando saltos de línea y reduciendo el resultado a la representación más compacta posible. La ofuscación de datos sensibles busca patrones en nombres de claves (password, token, apiKey, etc.) usando expresiones regulares case-insensitive, identifica el tipo de valor asociado (cadena, número, objeto) y aplica enmascaramiento contextual: asteriscos para números manteniendo longitud, primeros y últimos caracteres visibles para cadenas, y recursión en objetos anidados. Todas estas operaciones se ejecutan en un Web Worker dedicado cuando el documento supera cierto umbral de tamaño (configurable, por defecto 500 KB), liberando el hilo principal de la interfaz y manteniendo la aplicación responsiva durante el procesamiento. El resultado final se renderiza con syntax highlighting usando una librería ligera de coloreado que aplica clases CSS a tokens según su tipo (clave, cadena, número, booleano, null), facilitando la identificación visual de distintos elementos en el documento formateado.

¿Quién utiliza esta herramienta?

Desarrolladores backend que construyen APIs REST o GraphQL utilizan esta herramienta para validar payloads de respuesta, formatear ejemplos de documentación legibles, y generar interfaces TypeScript desde respuestas reales para asegurar type safety en clientes frontend sin transcribir manualmente estructuras complejas. Ingenieros DevOps que mantienen archivos de configuración en Kubernetes, Docker Compose, Terraform o Ansible encuentran aquí la capacidad de convertir entre JSON, YAML y TOML según las preferencias de cada herramienta, validar sintaxis antes de hacer commit y evitar errores de despliegue causados por indentación incorrecta o trailing commas prohibidas. Testers de QA que documentan bugs de API capturan respuestas con errores, las reparan automáticamente para aislar si el problema es sintáctico o semántico, comparan respuestas entre versiones de API usando el diff semántico, y extraen campos específicos con JSONPath para validar contratos sin cargar todo el payload. Analistas de datos que reciben exports JSON desde bases de datos NoSQL, servicios cloud o webhooks de terceros los convierten a YAML legible para análisis manual, extraen subconjuntos de interés con consultas JSONPath, y generan schemas Python para validar consistencia de datos en pipelines ETL. Diseñadores de API que definen esquemas OpenAPI (Swagger), AsyncAPI o JSON Schema validan que sus ejemplos sean sintácticamente correctos, generan tipos de lenguajes estáticos para distribuir a equipos consumidores, y comparan versiones de schema para auditar breaking changes antes de publicar nuevas releases. Estudiantes de desarrollo web y ciencia de datos que aprenden sobre APIs, serialización y formatos de intercambio de datos utilizan la herramienta como sandbox interactivo para experimentar con sintaxis JSON, entender diferencias entre formatos, y visualizar estructuras jerárquicas complejas en la vista de árbol navegable.

Funcionalidades incluidas

  • Validación de sintaxis JSON con reporte de errores detallado indicando línea, columna y contexto del problema detectado
  • Formateo con indentación configurable de 2 o 4 espacios, saltos de línea consistentes y alineación vertical de claves
  • Reparación automática de errores comunes: trailing commas, comillas faltantes, corchetes sin cerrar, comillas simples
  • Minificación para reducir tamaño eliminando espacios en blanco innecesarios sin afectar la validez sintáctica
  • Conversión bidireccional entre JSON, YAML y TOML con detección automática de formato de entrada
  • Vista de árbol navegable con expansión/colapso de nodos, búsqueda en tiempo real y copiado de rutas JSONPath
  • Comparador diff con modo semántico (ignora orden de claves) y estricto (compara representación exacta)
  • Generación de schemas y tipos para TypeScript (interfaces), Go (structs) y Python (dataclasses) con inferencia automática
  • Consultas JSONPath para extraer subconjuntos de datos con sintaxis de filtros, comodines y recursión profunda
  • Ofuscación automática de datos sensibles (passwords, tokens, emails) detectando patrones en nombres de claves
  • Ordenamiento alfabético de claves en objetos para normalizar representaciones y facilitar comparaciones
  • Compartición mediante URL con documentos codificados en parámetros sin almacenamiento en servidor

Fundamentos técnicos y precisión

El formateador implementa parsing según la especificación JSON oficial RFC 8259 publicada por IETF (Internet Engineering Task Force), que define de forma normativa la gramática sintáctica, el manejo de caracteres Unicode mediante secuencias de escape, y el comportamiento de valores numéricos incluyendo la representación de números en coma flotante según IEEE 754. El parser JSON utiliza la implementación nativa JSON.parse() del navegador, que ha sido extensivamente testeada y optimizada por los motores JavaScript modernos (V8 en Chrome, SpiderMonkey en Firefox, JavaScriptCore en Safari) para cumplir rigurosamente con el estándar. Para YAML, empleamos la biblioteca js-yaml que implementa YAML 1.2, el estándar actual que corrige inconsistencias de versiones anteriores y define semántica clara para tipos, anclas, alias, y documentos múltiples en un mismo archivo. La conversión a TOML sigue la especificación TOML v1.0.0 creada por Tom Preston-Werner, fundador de GitHub, que establece reglas precisas para tablas, arrays de tablas, tipos de datos (especialmente fechas y horas ISO 8601), y escape de caracteres en cadenas literales y básicas. El algoritmo de diff semántico normaliza documentos a una forma canónica calculando hashes de objetos independientemente del orden de claves, usando la librería fast-json-stable-stringify que produce serialización determinística crucial para comparaciones idempotentes. La generación de schemas TypeScript respeta las convenciones de tipos del manual oficial de TypeScript (microsoft.com/typescript), incluyendo utility types como Partial, Required, y Record cuando son aplicables. Los schemas Go generan structs con tags json que siguen las convenciones del paquete encoding/json de la biblioteca estándar, documentadas en pkg.go.dev/encoding/json. Los dataclasses Python adhieren a PEP 557 (Python Enhancement Proposal 557) que define el decorador @dataclass y type hints según PEP 484 actualizados en PEP 585 para usar tipos built-in como list[str] en lugar de List[str] del módulo typing en Python 3.9+. Las expresiones JSONPath implementan la sintaxis definida en la propuesta original de Stefan Goessner (2007) ampliamente adoptada, con extensiones de la biblioteca jsonpath-plus que agregan operadores adicionales como filtros con expresiones regulares y funciones de agregación.

Preguntas frecuentes

¿Qué hace la función de reparación automática de JSON?

La función de reparación automática detecta y corrige errores comunes de sintaxis JSON que impiden el parseo estándar. Arregla comas faltantes o sobrantes al final de objetos y arrays, comillas simples en lugar de dobles, nombres de propiedades sin comillas, trailing commas que no son válidas en JSON estricto, y valores undefined convertidos a null. El algoritmo analiza el documento carácter por carácter, identifica el contexto sintáctico (dentro de cadena, objeto, array, clave o valor) y aplica correcciones según las reglas de la especificación JSON RFC 8259. Esto resulta especialmente útil al recibir respuestas de APIs con formato inconsistente, copiar fragmentos desde consolas de navegador que incluyen JavaScript literal en lugar de JSON estricto, o migrar configuraciones desde formatos similares como JSON5 o HJSON que permiten sintaxis relajada. El proceso no modifica la estructura semántica del documento, solo normaliza la sintaxis para cumplir con el estándar JSON oficial publicado por IETF.

¿Cuál es la diferencia entre comparación semántica y estricta?

La comparación semántica ignora diferencias que no afectan el significado de los datos: orden de claves en objetos, espacios en blanco adicionales, formato de indentación y trailing zeros en decimales. Considera idénticos dos objetos que tienen las mismas claves con los mismos valores incluso si están en orden diferente. La comparación estricta evalúa tanto el contenido como la representación exacta: dos objetos con las mismas claves en distinto orden se marcan como diferentes, los espacios en blanco cuentan, y 1.0 es distinto de 1. Para casos de uso en testing de APIs o verificación de configuraciones, la semántica resulta más práctica porque detecta cambios funcionales sin reportar ruido de formato. La estricta es útil para validar serialización exacta, detectar cambios en pipelines de CI/CD donde el orden importa, o auditar modificaciones en archivos versionados donde incluso cambios de formato deben revisarse. El algoritmo de diff semántico normaliza ambos documentos a una representación canónica antes de comparar.

¿Cómo funciona la generación de schemas TypeScript, Go y Python?

El generador analiza la estructura del JSON ingresado, infiere tipos de datos para cada campo y construye definiciones de tipos idiomáticas para cada lenguaje. Para TypeScript, genera interfaces con anotaciones de tipos opcionales/requeridos según la presencia de claves en el JSON de ejemplo. En Go, produce structs con tags json para mapeo de campos y punteros para propiedades opcionales. Python genera dataclasses con type hints de la biblioteca typing, incluyendo Union, Optional, List y Dict según corresponda. El proceso examina arrays para determinar si contienen tipos homogéneos o heterogéneos, infiere literales de cadena para enums cuando detecta patrones repetidos en múltiples elementos, y maneja recursivamente objetos anidados generando tipos adicionales con nomenclatura derivada de la ruta JSONPath. Si encuentras un array con elementos de distintos tipos, el generador produce una unión de tipos en TypeScript, una interface{} en Go, o Union en Python. Esto acelera la integración de nuevas APIs eliminando el trabajo manual de transcribir estructuras.

¿Qué es JSONPath y cuándo debería usarlo?

JSONPath es un lenguaje de consulta para documentos JSON análogo a XPath para XML, diseñado para extraer subconjuntos de datos desde estructuras complejas usando expresiones declarativas. La sintaxis básica incluye $ para la raíz, punto para navegar propiedades ($.user.name), corchetes para indexar arrays ($.items[0]), y asterisco para comodines ($.users[*].email). Soporta filtros con predicados como $..books[?(@.price < 10)] para encontrar todos los libros con precio menor a 10, slicing de arrays con notación de rangos [0:5], y recursión profunda con .. para buscar una clave en cualquier nivel de anidamiento. Resulta especialmente útil al trabajar con respuestas de APIs grandes donde solo necesitas extraer campos específicos sin cargar toda la estructura en memoria, testing de contratos de API donde validas que ciertos campos existen, y transformación de datos durante pipelines ETL donde mapeas entre esquemas distintos. La implementación sigue la especificación propuesta por Stefan Goessner en 2007.

¿La herramienta funciona con archivos JSON grandes?

La herramienta puede procesar archivos de hasta 10 MB directamente en el navegador sin problemas de rendimiento en dispositivos modernos. Para archivos grandes, utiliza Web Workers para ejecutar operaciones costosas como validación, formateo y comparación en un hilo separado, evitando que la interfaz se congele durante el procesamiento. La vista de árbol implementa virtualización, renderizando solo los nodos visibles en pantalla en lugar de todo el documento, lo que permite navegar estructuras con miles de elementos sin degradación de performance. El comparador divide documentos grandes en chunks y procesa diferencias de forma incremental, mostrando resultados parciales mientras continúa analizando el resto. Para archivos superiores a 10 MB, la herramienta muestra una advertencia recomendando dividir el documento o usar herramientas de línea de comandos como jq, yq o gron. Si necesitas procesar regularmente archivos JSON muy grandes, considera usar streaming parsers en Node.js o Python.

¿Puedo usar esta herramienta para ofuscar datos sensibles?

Sí, la función de ofuscación detecta automáticamente campos con nombres que sugieren información sensible y reemplaza sus valores con máscaras genéricas. Identifica claves llamadas password, token, secret, apiKey, creditCard, ssn, email, phone y variantes en camelCase, snake_case o kebab-case. Los valores numéricos se reemplazan con asteriscos manteniendo la cantidad de dígitos, las cadenas se enmascaran mostrando solo los primeros y últimos caracteres, y los objetos anidados que contengan estas claves también se procesan recursivamente. Todo el procesamiento ocurre localmente en tu navegador: los datos nunca salen de tu dispositivo ni se envían a servidores externos. Esto resulta útil al compartir ejemplos de respuestas de APIs en foros públicos, documentación técnica o tickets de soporte sin exponer credenciales reales, preparar datasets de prueba para demos, o generar capturas de pantalla de configuraciones que incluyan tokens de acceso. La ofuscación es irreversible y no constituye encriptación criptográficamente segura.

¿Qué diferencia hay entre formatear y minificar JSON?

Formatear expande el JSON agregando saltos de línea, indentación consistente y espacios después de dos puntos y comas para mejorar la legibilidad humana. Cada nivel de anidamiento recibe un nivel adicional de indentación (2 o 4 espacios según tu preferencia), los arrays y objetos se despliegan en múltiples líneas cuando contienen más de un elemento, y las claves se alinean verticalmente para facilitar el escaneo visual. El resultado es más grande en bytes pero infinitamente más fácil de leer, depurar y editar manualmente. Minificar hace lo contrario: elimina todos los espacios en blanco innecesarios, saltos de línea y caracteres redundantes para reducir el tamaño del archivo al mínimo posible. El JSON minificado es sintácticamente válido pero difícil de leer para humanos, convirtiéndose en una sola línea continua sin indentación. Esto resulta ideal para transmitir datos por red en APIs donde cada byte cuenta, almacenar configuraciones en bases de datos, o incluir JSON inline. Una respuesta de API típica puede reducirse 20-40% al minificar.

¿Cómo funciona la conversión entre JSON, YAML y TOML?

La conversión preserva la estructura semántica del documento transformando la representación sintáctica entre formatos. JSON usa llaves, corchetes y comillas estrictas según RFC 8259. YAML emplea indentación significativa, permite comentarios con #, soporta referencias con anclas y alias, y tiene tipos implícitos que detectan números, booleanos y null sin comillas. TOML adopta sintaxis similar a archivos INI con secciones [header], tablas [[array]], y tipos explícitos para fechas y horas según ISO 8601. Al convertir de JSON a YAML, la herramienta genera indentación de 2 espacios, convierte booleanos true/false a minúsculas, y omite comillas en cadenas sin caracteres especiales. De JSON a TOML, agrupa claves anidadas en secciones de tabla y convierte arrays de objetos en tablas de array con sintaxis [[item]]. En dirección inversa, normaliza todos los tipos a la representación JSON estricta, resuelve referencias de anclas YAML expandiendo valores duplicados, y convierte fechas TOML a cadenas ISO 8601. La detección automática analiza la sintaxis de las primeras líneas.

¿La herramienta almacena o envía mis datos JSON a algún servidor?

No, absolutamente todos los datos que ingresas se procesan localmente en tu navegador sin enviar nada a servidores externos en ningún momento. La aplicación es completamente client-side: el código JavaScript se descarga una vez al cargar la página y luego todas las operaciones (formateo, validación, conversión, comparación, generación de schemas, consultas JSONPath) se ejecutan en tu dispositivo usando la capacidad de procesamiento de tu navegador. No hay llamadas a APIs remotas, no se recopilan analíticas sobre el contenido de tus documentos, y no se almacena historial en bases de datos propias ni de terceros. Cuando compartes un documento mediante URL, los datos viajan codificados en los parámetros de la dirección del navegador, no se almacenan en ningún servidor intermedio. Esta arquitectura garantiza que información sensible de tus proyectos permanezca privada bajo tu control exclusivo. Puedes verificar esto abriendo las herramientas de desarrollador de tu navegador (F12), yendo a la pestaña Network, y confirmando que no hay solicitudes HTTP durante las operaciones.

¿Puedo usar esta herramienta en proyectos comerciales?

Sí, la herramienta es completamente gratuita para uso personal y comercial sin restricciones. No requiere registro, no tiene límites de uso diario, no muestra anuncios, y no solicita información de pago en ningún momento. Puedes integrar los resultados generados (schemas TypeScript, configuraciones convertidas, JSON reparado) directamente en tus proyectos comerciales, productos SaaS, servicios de consultoría o herramientas internas de empresa sin solicitar permiso ni pagar licencias. El código que la herramienta genera a partir de tus documentos JSON te pertenece completamente y puedes distribuirlo bajo la licencia que elijas. No aplicamos marcas de agua, no insertamos comentarios promocionales en el código exportado, y no rastreamos qué empresas o productos utilizan los esquemas generados. Esta política de uso abierto refleja nuestro compromiso con la comunidad de desarrollo y la creencia de que las herramientas fundamentales de productividad deben ser accesibles sin barreras económicas. Si encuentras la herramienta útil, considera compartirla con colegas o contribuir reportando bugs.