Convertir JSON a CSV: aplanar un arreglo de objetos

Un arreglo JSON de objetos se mapea a una tabla CSV — una fila por objeto, columnas de la unión de claves. El trabajo real está en el entrecomillado y en los valores anidados.

La forma «array de objetos»

CSV es una tabla plana, así que el JSON que se convierte limpiamente es un array de objetos: cada objeto pasa a ser una fila y cada clave una columna.

Construir la cabecera

Usa la unión de las claves de todos los objetos como cabecera, no solo las del primer objeto, para que los registros con claves extra o ausentes sigan alineados. Las celdas que faltan quedan en blanco.

Reglas de entrecomillado

Cualquier valor que contenga una coma, una comilla doble o un salto de línea debe ir entre comillas dobles, y las comillas internas duplicadas, o las columnas se desalinearán.

Valores anidados

Los objetos y arrays no tienen una forma plana en CSV, así que escríbelos como texto JSON dentro de la celda (reversible) o aplánalos en columnas con puntos como address.city.

Orden de cabecera y estabilidad

Ordena la unión de claves o fija el orden al del primer registro y añade las extras al final. Un orden de cabecera estable hace útiles los diffs entre exportaciones y evita que las columnas cambien de sitio en cada ejecución.

Formato de fechas y números

Las hojas de cálculo reinterpretan los valores con bastante agresividad: los IDs numéricos largos pierden precisión, las fechas ISO se reformatean y los ceros a la izquierda desaparecen. Si un valor debe sobrevivir tal cual, entrecomíllalo y, al pegarlo en Excel, antepón un apóstrofo.

Compatibilidad con Excel y Google Sheets

Usa finales de línea CRLF y un BOM (UTF-8 con byte-order mark) para que Excel detecte Unicode. En Google Sheets el BOM es opcional, pero las comas como delimitadores y el escapado con comillas dobles siguen aplicando.

De CSV de vuelta a JSON

Parsea las filas con un split consciente de las comillas (no hagas split por comas a lo bruto), usa la primera fila como nombres de campo y, por columna, intenta convertir números, booleanos y fechas ISO. La ida y vuelta con esta herramienta mantiene las cadenas como cadenas, salvo que una columna sea totalmente numérica.

Errores habituales

Estos son los problemas que rompen la mayoría de las exportaciones CSV.

  • Comas sin escapar dentro de valores de cadena
  • Saltos de línea en celdas sin comillas alrededor
  • Codificaciones mezcladas (UTF-8 frente a Latin-1) que generan mojibake
  • Enteros grandes (IDs) truncados silenciosamente por las hojas de cálculo
  • Booleanos guardados como las cadenas "true"/"false" en lugar de TRUE/FALSE