piapia123
es

Inspector de estructura JSON

Formato

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Pega un JSON y obtén un retrato de su estructura: profundidad de anidamiento, número total de nodos, cuántos objetos y arrays, el reparto por tipos, el array más largo y la cadena más larga. Lo más valioso de mirar son las claves duplicadas. `JSON.parse('{"a":1,"a":2}')` devuelve `{"a":2}`: la primera `a` desaparece sin decir nada. En el trabajo con APIs esto es muy real: el servidor escribe el mismo campo en dos sitios, dos personas miran «el mismo JSON» y llegan a conclusiones distintas, cada una sospechando que la otra leyó mal. Esta herramienta rastrea el texto original para encontrarlas y decirte en qué ruta están. Por qué es una herramienta distinta del «Formateador JSON»: aquel responde «cómo miro este JSON» (maquetar, plegar, editar); esta responde «qué es este JSON» (cuánto ocupa, hasta qué profundidad, de qué está hecho). La entrada es la misma, pero el trabajo y la interfaz no se parecen en nada: meter estadísticas en un editor ya lleno de botones no serviría a ninguno de los dos. Las otras tres acciones son recursivas: mezclar, invertir y quitar duplicados llegan a los arrays de todos los niveles, no solo al más externo.

Funciones

  • Profundidad de anidamiento, número total de nodos y cuántos objetos y arrays hay
  • Reparto por tipos (string × 12, number × 5 …), ordenado de más a menos
  • Cuánto mide el array más largo, con la longitud de todos los arrays
  • Cuánto mide la cadena más larga y la longitud total de las cadenas
  • ⚠️ Claves duplicadas: rastrea el texto original en busca de claves repetidas en un mismo objeto, da la ruta y las veces que aparecen, y explica que `JSON.parse` solo conserva la última
  • Las tres acciones de mezclar, invertir y quitar duplicados se aplican recursivamente a los arrays de todos los niveles
  • Quitar duplicados compara por el texto JSON del valor: `1` y `"1"` son cosas distintas, y dos objetos idénticos son el mismo
  • El análisis reutiliza el localizador de errores del «Formateador JSON» (con línea y columna, y reconoce literales de Python)
  • Todo ocurre en tu navegador, sin red

Cómo se usa

  1. Pega tu JSON
  2. Deja la acción en estadísticas de estructura y los números aparecen al momento
  3. Mira la fila de claves duplicadas: cuando no hay ninguna, lo dice expresamente
  4. Para ordenar los datos, elige mezclar, invertir o quitar duplicados y obtendrás JSON formateado

Preguntas frecuentes

¿Por qué importan las claves duplicadas si el valor que lee mi código parece correcto?
Porque estás leyendo la última. JSON.parse conserva el valor posterior y descarta el anterior, y ese descarte ocurre al analizar, no al leer: el valor que obtienes es «correcto», pero no necesariamente viene de donde supones. El problema real aparece en equipo: el servidor dice que devolvió A, y A está sin duda en el JSON que pegas (su primera aparición), pero tu código recibe la B que venía después. Esta herramienta señala las dos, para que podáis hablar de la misma línea.
¿Por qué no basta con decir que un JSON no debe tener claves duplicadas?
Porque la norma no lo prohíbe: la RFC 8259 deja el comportamiento a la implementación. Los analizadores discrepan: JavaScript conserva la última, el json de Python también, y algunos analizadores estrictos rechazan el documento entero. Que el mismo archivo dé resultados distintos según el lenguaje es justo lo que lo hace peligroso. Esta herramienta no juzga: expone los hechos.
¿Desde dónde se cuenta la profundidad?
La raíz cuenta como nivel 1, así que `{"a":1}` tiene profundidad 2 (el objeto raíz más el número) y `{"a":{"b":1}}` tiene 3. Así la profundidad significa «cuántos nodos atraviesas desde la raíz hasta el valor más hondo», más intuitivo que contar niveles de llaves.
¿La mezcla es criptográficamente aleatoria?
Usa `Math.random` con una mezcla de Fisher–Yates. ⚠️ No usa `crypto.getRandomValues` a propósito: el objetivo es que el orden de tus datos sea impredecible, no la solidez criptográfica. Para valores impredecibles (contraseñas, tokens), usa el generador de contraseñas o el de números aleatorios.

Herramientas relacionadas