Skip to main content
CheckTown
Datos

JSON Flatten: Convert Nested to Flat and Back

Publicado 5 min de lectura
En este artículo

¿Qué es el aplanamiento JSON?

El aplanamiento JSON convierte un objeto JSON profundamente anidado en una estructura plana de clave-valor usando rutas con notación de puntos. Cada valor hoja del objeto original recibe una ruta única como 'user.address.city' que describe su posición en la jerarquía.

La operación inversa, desaplanar, toma las rutas con notación de puntos y reconstruye la estructura anidada original. Juntos, aplanar y desaplanar permiten transformar JSON entre representaciones anidadas y planas sin perder datos.

Cómo funciona el aplanamiento JSON

El algoritmo de aplanamiento recorre recursivamente el árbol JSON, construyendo una cadena de ruta mientras desciende en objetos y arrays anidados.

  • Recorrido recursivo — el algoritmo recorre cada clave del objeto, añadiendo cada clave a una ruta creciente separada por puntos
  • Notación de índice de array — los elementos de array usan notación de corchetes como 'items[0].name' para preservar su posición
  • Recolección de hojas — cuando se alcanza un valor primitivo (cadena, número, booleano, null), la ruta completa y el valor se almacenan como un par clave-valor plano

Pruébalo gratis — sin registro

Aplanar o desaplanar JSON →

Cuándo usar el aplanamiento JSON

El JSON aplanado es útil cuando necesitas trabajar con datos anidados en sistemas que solo admiten estructuras planas o comparar estructuras complejas.

  • Almacenamiento en base de datos — almacena configuraciones anidadas en tablas clave-valor planas sin cambios de esquema
  • Exportación CSV — convierte registros JSON anidados en filas planas adecuadas para importar en hojas de cálculo
  • Comparación de configuración — aplana dos archivos de configuración y compara las claves planas para detectar rápidamente los cambios

Preguntas frecuentes

¿El aplanamiento preserva los tipos de datos?

Sí. Todos los valores primitivos (cadenas, números, booleanos, null) se preservan exactamente. Los arrays se convierten en rutas indexadas como 'items[0]', y los objetos anidados en rutas separadas por puntos. El desaplanamiento reconstruye los tipos originales.

¿Qué pasa con anidamiento muy profundo?

El aplanador maneja cualquier profundidad de anidamiento. Los objetos muy profundos producen cadenas de ruta largas, pero no hay límite funcional. La mayoría de implementaciones usan enfoques iterativos para evitar problemas de pila de llamadas.

¿Puedo aplanar JSON con claves duplicadas?

JSON no permite claves duplicadas en el mismo nivel según la especificación. Si tu parser las acepta, solo el último valor para cada clave sobrevive al parsing. El aplanador trabaja sobre el objeto parseado, por lo que los duplicados ya están resueltos.

Herramientas relacionadas