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
Comparador Diff
Compara dos documentos JSON o texto plano con diff semántico o estricto, resaltado de cambios y navegación por diferencias.
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.