Formateador y Minificador de JSON
Formatee, minifique y valide JSON con árbol colapsable, consulta JSONPath, detección de claves duplicadas y ubicación de errores por línea/columna.
Formateador de JSON - Formatear y Validar JSON Online
Una potente herramienta de formateo y validación de JSON online que le ayuda a formatear, embellecer, minificar y validar datos JSON. Con resaltado de sintaxis, detección de errores con ubicación precisa y varias opciones de formateo. Perfecto para desarrolladores, testers de API y cualquier persona que trabaje con datos JSON.
¿Cómo maneja el formateador JSON inválido?
El formateador primero ejecuta tu entrada a través de un paso estricto de JSON.parse. Si el análisis falla, muestra el mensaje de error más la línea y columna del carácter ofensivo (resuelto en todos los navegadores principales, incluidos Firefox y Safari, no solo Chrome), lo que te apunta a la causa probable: coma final, comillas simples en lugar de dobles, clave sin comillas, bloque de comentario o cadena no terminada. Nunca "arregla" silenciosamente tu JSON, porque eso ocultaría errores reales en los productores aguas arriba. Esta herramienta solo valida JSON estricto: no analiza dialectos relajados como JSON5 o JSONC (comentarios, comas finales, claves sin comillas); elimina esas características antes de validar, ya que su salida ya no es JSON ECMA-404 y puede ser rechazada por consumidores aguas abajo. El analizador estricto se ajusta a RFC 8259 y ECMA-404, los dos estándares equivalentes que definen JSON.
¿Cuál es la diferencia entre JSON, JSON5, JSONC y NDJSON?
JSON (RFC 8259 / ECMA-404) es el formato canónico estricto: claves entre comillas dobles, sin comentarios, sin comas finales. JSONC ("JSON con comentarios") es la variante de VS Code que permite comentarios // y /* */; se usa para tsconfig.json y archivos de configuración. JSON5 es un superconjunto más rico que añade claves identificador ECMAScript sin comillas, comillas simples, cadenas multilínea, números hexadecimales, puntos decimales iniciales/finales, +Infinity, NaN y comas finales. NDJSON (JSON delimitado por nueva línea) es un formato de streaming donde cada línea es un valor JSON completo, usado para archivos de registro, conjuntos de datos de aprendizaje automático y flujos de API. NO son intercambiables: un analizador JSON estricto rechazará JSONC y JSON5. Elige según el consumidor: las APIs casi siempre requieren JSON estricto.
¿Por qué mi JSON contiene de repente números como 9999999999999999 que se convierten en 10000000000000000?
JSON en sí no impone límite a la precisión numérica, pero la mayoría de los analizadores —incluido JSON.parse de JavaScript— almacenan los números como flotantes IEEE 754 de doble precisión, que solo pueden representar exactamente enteros hasta 2^53 - 1 (aproximadamente 9,007 cuatrillones, o Number.MAX_SAFE_INTEGER). Los enteros más grandes se redondean silenciosamente al doble representable más cercano. Esto afecta a APIs que devuelven IDs de 64 bits (snowflakes de Twitter, Discord, claves primarias BIGINT de bases de datos): cuando JavaScript los analiza, los últimos dígitos están mal. Soluciones: (1) el servidor debe serializar enteros grandes como cadenas; (2) usar un analizador consciente de BigInt como json-bigint o el parámetro reviver de JSON.parse para interceptar el token bruto; (3) analizar manualmente como cadena.
¿Debería minificar JSON para APIs en producción?
Sí para endpoints sensibles al tamaño, no para todo lo demás. Minificar elimina todos los espacios en blanco (espacios, tabuladores, saltos de línea alrededor de : y ,) y típicamente ahorra 20-40% de bytes según la longitud de las claves y la distribución de los valores. Los ahorros de transmisión se borran en gran medida una vez que entra en juego la compresión gzip o Brotli de HTTP —los compresores modernos manejan el espacio en blanco eficientemente— así que la ganancia práctica sobre el transporte comprimido suele ser inferior al 5%. La contrapartida: el JSON minificado es ilegible en DevTools del navegador y agregadores de registros, haciendo más difícil la depuración en producción. Mejor práctica: servir JSON con formato bonito en desarrollo y en APIs internas, JSON minificado solo para endpoints públicos de alto tráfico.
¿Por qué el formateador ordena mis claves, y puedo desactivarlo?
El ordenamiento de claves es opcional y está desactivado por defecto en esta herramienta: el formateo preserva el orden original de claves de tu entrada. Algunos flujos de trabajo se benefician de claves ordenadas: salida determinista para diferencias de git, JSON canónico para firma criptográfica (JCS, RFC 8785) y conflictos de fusión reducidos. Otros flujos de trabajo dependen del orden de inserción: esquemas OpenAPI donde los campos requeridos se listan primero, registros de log donde la marca de tiempo debe ir primero, archivos de configuración que siguen una plantilla documentada. Los objetos JavaScript preservan el orden de inserción para claves de cadena según ES2015, y JSON.stringify refleja ese orden. Si quieres salida ordenada, la opción "Ordenar claves" realiza un ordenamiento recursivo profundo.

¿Cómo encuentro un valor o ruta específica dentro de un archivo JSON grande?
Para exploración ad-hoc, JSONPath ($..book[?(@.price<10)]) y JMESPath (locations[*].name | sort(@)) son lenguajes de consulta diseñados exactamente para esto, ambos tienen implementaciones JavaScript. La herramienta de línea de comandos jq es la opción más poderosa para pipelines de shell: jq '.users[] | select(.age > 30) | .name' filtra y proyecta en una expresión. Para navegación de árbol en este formateador, usa los nodos plegables para profundizar visualmente, luego usa Ctrl+F para búsqueda de texto. Para archivos verdaderamente masivos (por encima de 100 MB), evita cargar todo el documento en memoria: usa analizadores de streaming como Node.js stream-json, Python ijson o Decoder de Go encoding/json. Indexar en una base de datos (SQLite JSON1, Postgres JSONB) es la respuesta correcta una vez que un archivo se consulta repetidamente.
¿Por qué mi analizador rechaza claves duplicadas en un objeto?
RFC 8259 dice que el comportamiento es definido por la implementación: "Los nombres dentro de un objeto DEBERÍAN ser únicos". La mayoría de los analizadores no lanzan un error; mantienen silenciosamente el último valor visto (JSON.parse de JavaScript), o el primero (algunas bibliotecas Go con unmarshalers personalizados), o los fusionan (raro). Esta ambigüedad es una fuente real de errores y problemas de seguridad: vea las Vulnerabilidades de Interoperabilidad JSON (patrones CVE en contrabando HTTP y verificación JWT). La práctica más segura es exponer los duplicados: esta herramienta escanea el texto en bruto y te advierte cuando una clave se repite dentro del mismo objeto, nombrando la clave y la línea/columna de la SEGUNDA ocurrencia (el valor que JSON.parse conservó en silencio) para que puedas arreglar el productor. La advertencia aparece al Validar, Formatear y Minificar, y nunca bloquea la operación. Si debes tolerar duplicados por razones históricas, documenta qué valor gana y haz pruebas unitarias. JCS (RFC 8785) prohíbe rotundamente las claves duplicadas.
¿Cómo funciona la consulta JSONPath integrada?
Escribe una expresión JSONPath en el campo Consulta y haz clic en Ejecutar Consulta para extraer los valores coincidentes sin herramientas externas. El evaluador admite $ para la raíz, .campo y ['campo'] para propiedades, [0] y [-1] para índices de array, [*] para cada hijo, ..campo para descenso recursivo a cualquier profundidad, uniones ['a','b'] y predicados de filtro como [?(@.price<10)] o [?(@.active==true)] con los operadores == != < <= > >=. Ejemplos: $.store.book[*].author devuelve todos los autores; $..price recopila todos los precios del documento; $.users[?(@.age>30)].name devuelve los nombres de los usuarios mayores de 30. Los resultados se devuelven como un array JSON y la barra de estado muestra el número de coincidencias; un array vacío significa que nada coincidió. Todo se ejecuta en tu navegador, por lo que es seguro para datos sensibles, y combina bien con el árbol colapsable para localizar una ruta antes de consultarla.
¿Cómo escapo caracteres especiales como nueva línea, tabulador o comillas dentro de una cadena JSON?
Las cadenas JSON usan un pequeño conjunto de escapes con barra invertida definidos en RFC 8259 sección 7: \" para comillas dobles, \\ para barra invertida, \/ para barra inclinada (opcional), \b para retroceso, \f para alimentación de formulario, \n para nueva línea, \r para retorno de carro, \t para tabulador, y \uXXXX para cualquier punto de código Unicode hasta U+FFFF. Los puntos de código por encima de U+FFFF (emoji, CJK raros) usan un par sustituto UTF-16: \uD83D\uDE00 para 😀. Los caracteres de control U+0000 a U+001F DEBEN escaparse: un byte de nueva línea literal dentro de una cadena JSON es inválido. El escape de barra inclinada está permitido pero no es requerido; muchas herramientas lo escapan dentro de </script> para defenderse contra inyección HTML cuando el JSON se incrusta en etiquetas <script>.
Características Principales
- Formatear JSON con sangría personalizable (2, 4, 8 espacios o tabulaciones)
- Minificar JSON para reducir el tamaño del archivo para producción
- Validar sintaxis JSON con ubicación precisa de errores
- Resaltado de sintaxis para mejor legibilidad
- Ordenar claves de objeto alfabéticamente
- Estadísticas en tiempo real (caracteres, líneas, tamaño)
- Copiar JSON formateado al portapapeles
- Descargar JSON formateado como archivo .json
- Cargar archivos JSON para formatear
- Soporte de modo oscuro
- Sin límites de tamaño de archivo
- Procesamiento 100% del lado del cliente - sus datos nunca salen de su navegador
- Funciona sin conexión después de la carga inicial
- Diseño responsivo compatible con móviles
