JSON Flatten
Aplana JSON anidado a claves con notación de puntos, o desaplana de vuelta a la estructura anidada.
Flattened JSON
Paste JSON to flatten into dot-notation keys.
¿Qué es JSON Flatten?
Una herramienta de aplanado/desaplanado JSON transforma entre estructuras JSON anidadas y planas. Aplanar convierte objetos profundamente anidados en un objeto de un solo nivel con claves en notación de puntos (p. ej. user.address.city, o user[0].address.city para los arrays). Desaplanar invierte el proceso, reconstruyendo la estructura anidada original a partir de las claves con notación de puntos. Esto es útil para procesamiento de datos, transformaciones de API, convertir datos jerárquicos a formatos tabulares, o cuando necesitas consultar propiedades anidadas con simples búsquedas de clave. Los arrays se conservan con notación de corchetes — user.tags[0] se refiere al primer elemento del array tags. La herramienta muestra estadísticas de reducción de profundidad, para que veas cuánta complejidad se elimina o se restaura.
Cómo usar JSON Flatten
- Pega tu JSON anidado en el panel izquierdo para aplanarlo, o JSON plano para desaplanarlo.
- Alterna entre los modos Aplanar y Desaplanar con el botón de conmutación.
- La salida aplanada usa notación de puntos (.) para los objetos anidados y notación de corchetes ([]) para los arrays.
- El desaplanado reconstruye la estructura original a partir de las claves con notación de puntos.
- Las estadísticas muestran la profundidad original, la profundidad aplanada y el recuento total de claves.
Ejemplos
Objeto anidado → Aplanado
Entrada
{ "user": { "name": "Alice", "address": { "city": "San Francisco", "zip": "94102" } } }
Salida
{ "user.name": "Alice", "user.address.city": "San Francisco", "user.address.zip": "94102" }
Array → Aplanado con corchetes
Entrada
{ "users": [ { "name": "Alice", "role": "admin" }, { "name": "Bob", "role": "user" } ] }
Salida
{ "users[0].name": "Alice", "users[0].role": "admin", "users[1].name": "Bob", "users[1].role": "user" }
Errores comunes
- Asumir que las claves aplanadas pierden la información de tipo — las claves aplanadas son cadenas (p. ej. user.address.city), pero los valores asociados conservan sus tipos originales. Números, booleanos, null, objetos y arrays se conservan todos correctamente.
- Pensar que el desaplanado puede revertir colisiones de claves arbitrarias — si el aplanado crea colisiones de claves (p. ej. tanto a.b como a['b'] proyectándose a la misma clave aplanada), el desaplanado no puede restaurar ambos originales. Usa nombres de propiedad consistentes en tu JSON fuente para evitarlo.
- Esperar ordenación en la salida aplanada — las claves aplanadas aparecen en orden de primera aparición tras un recorrido en profundidad. El orden es determinista pero no alfabético (a.b.c va antes que a.b.d porque se visita la propiedad c antes que d, no por ordenación alfabética).
Por qué usar esta herramienta
- Conversión bidireccional — aplana JSON anidado a un solo nivel y luego desaplana de vuelta a la estructura original. Las estadísticas muestran la reducción de profundidad y el recuento de claves.
- Conservación de arrays — la notación de corchetes (users[0].name) preserva la estructura de los arrays, facilitando referenciar elementos concretos o reconstruir los arrays originales.
- Acceso por consulta simple — el JSON aplanado te permite acceder a cualquier propiedad anidada con una única búsqueda de clave, sin bucles anidados ni recorridos recursivos.