← Blog de Formly

JSON a CSV: Cuando las APIs devuelven JSON y tu jefe quiere Excel

Perdí la cuenta de cuántas veces he exportado datos de una API solo para escuchar desde el otro lado de la sala: «¿podés poner esto en una hoja de cálculo?». Las primeras veces, incluso escribía scripts en Python. Luego me di cuenta de que perdía 15 minutos en algo que debería tardar 15 segundos.

Tanto JSON como CSV son formatos de texto, pero modelan los datos de distinta forma. JSON es jerárquico: objetos dentro de objetos, matrices de matrices. CSV es una tabla plana: filas y columnas. Convertir entre ambos implica tomar decisiones sobre esa anidación. Esta guía reúne todo lo que aprendí al hacerlo mal.

El problema del aplanado

La mayoría de los inconvenientes al convertir JSON a CSV surgen de los datos anidados. Veamos una respuesta de API típica:

{ "users": [ { "id": 1, "name": "Alice Chen", "email": "[email protected]", "address": { "city": "San Francisco", "state": "CA" }, "tags": ["admin", "beta"] } ] }

CSV no tiene una forma nativa de representar address.city ni tags[0]. Cada herramienta de conversión lo gestiona distinto: algunas aplanan usando puntos (address.city), otras con corchetes (address[city]), y otras simplemente rinden y escriben [object Object] dentro de una celda.

Lo aprendí por las malas con la API de Stripe. Sus objetos de cargos llegan a tener hasta 12 niveles de profundidad en algunos puntos. Si volcás el JSON crudo en una herramienta de conversión sencilla, terminás con columnas como metadata.items[3].custom_fields.0.value, completamente inutilizables en Excel.

Seleccionar los campos relevantes

Antes de convertir, definí qué datos realmente deben aparecer en la hoja de cálculo. Quien lo solicita pro

Sam Taylor Written by Sam Taylor — Full-stack developer. I build tools that run in your browser so your data never leaves your machine. More about me →