La conversión de JSON a CSV transforma datos estructurados de formato JSON a valores separados por comas, un formato tabular que hojas de cálculo, bases de datos y herramientas de análisis consumen de forma nativa. JSON almacena datos como objetos y arrays anidados sin un esquema fijo. CSV almacena datos como filas y columnas con una fila de cabecera que define los nombres de campo. La conversión es el puente que lleva los datos de API a hojas de cálculo y bases de datos.
CSV (Comma-Separated Values) está definido por RFC 4180. Cada línea es un registro, y los campos dentro de una línea están separados por un carácter delimitador, habitualmente una coma. Los campos que contienen el delimitador, comillas dobles o saltos de línea deben ir entre comillas dobles, con las comillas internas escapadas duplicándolas. Este escapado es la principal fuente de errores al escribir un conversor de JSON a CSV a mano.
La conversión es sencilla cuando la entrada es un array plano de objetos con claves consistentes. Cada objeto se convierte en una fila, y cada clave única se convierte en una cabecera de columna. Los objetos y arrays anidados requieren un paso de aplanamiento, y las claves inconsistentes entre objetos requieren una estrategia para manejar los campos ausentes — habitualmente dejando la celda vacía. Un conversor fiable gestiona automáticamente todos estos casos extremos.
¿Por qué convertir JSON a CSV?
Las APIs devuelven JSON, pero las hojas de cálculo, las bases de datos SQL y las herramientas BI esperan datos tabulares. Convertir JSON a CSV permite mover datos entre estos sistemas sin escribir scripts de importación personalizados.
⚡
Conversión instantánea en el navegador
Pega tu JSON y descarga el archivo de inmediato. Sin subida al servidor, sin límites de tamaño de archivos externos, sin esperar colas de procesamiento.
🔒
Procesamiento con privacidad garantizada
Tus datos permanecen en tu navegador. La conversión se ejecuta completamente en JavaScript en tu dispositivo. Exportaciones de bases de datos, registros de usuarios y datos financieros nunca salen de tu máquina.
🔀
Soporte para múltiples delimitadores
Elige entre coma, punto y coma, tabulador o pipe como delimitadores. Usa punto y coma para hojas de cálculo con configuración regional europea, tabuladores para archivos TSV, o pipes para importaciones en sistemas heredados.
📋
Sin cuenta necesaria
Abre la página y convierte. Sin registro, sin clave de API, sin instalación de CLI. Funciona en cualquier dispositivo con un navegador moderno.
Casos de uso de JSON a CSV
Exportación de datos de API a hojas de cálculo
Las REST APIs devuelven JSON. Los responsables de producto y los analistas necesitan esos datos en Excel o Google Sheets. Convierte la respuesta de la API a CSV y ábrela directamente en cualquier aplicación de hoja de cálculo.
Importación masiva en bases de datos
PostgreSQL COPY, MySQL LOAD DATA y SQLite .import aceptan CSV. Convierte tu conjunto de datos a formato tabular para una carga masiva rápida sin escribir un script de importación personalizado.
Prototipado de pipelines ETL
Los pipelines ETL suelen tener salidas intermedias difíciles de inspeccionar como JSON en bruto. Convierte la salida de un paso a CSV y ábrela en una hoja de cálculo para verificar las transformaciones antes de conectar el pipeline completo.
Preparación de datos de prueba para QA
Los ingenieros de QA generan fixtures de prueba como JSON, pero muchos frameworks de pruebas y herramientas de testing basado en datos aceptan CSV para entradas de prueba parametrizadas. Convierte los fixtures a CSV sin reformatear manualmente.
Análisis de logs e informes
Los logs JSON estructurados de aplicaciones y servicios cloud pueden convertirse a CSV para importarlos en herramientas BI como Tableau, Power BI o Looker para visualización e informes.
Procesamiento de datos académicos
Estudiantes e investigadores que trabajan con APIs de datos abiertos reciben respuestas JSON. Convertir a CSV permite el análisis en R, pandas, SPSS o Excel sin necesidad de escribir código de parseo.
Referencia de delimitadores CSV
El carácter delimitador separa los campos dentro de cada fila. La coma es el más habitual, pero otros delimitadores son estándar en contextos específicos. Elegir el delimitador incorrecto provoca que los campos se fusionen o se dividan incorrectamente al abrir el archivo.
Delimitador
Carácter
Extensión
Cuándo usarlo
Comma
,
.csv
Default for most spreadsheets and databases
Semicolon
;
.csv
Standard in locales where comma is a decimal separator (DE, FR, BR)
Tab
\t
.tsv
Avoids escaping when field values contain commas or semicolons
Pipe
|
.csv
Used in fixed-width legacy systems and some ETL pipelines
Manejo de JSON anidado en CSV
CSV es un formato plano sin manera nativa de representar objetos o arrays anidados. Cuando tu JSON contiene estructuras anidadas, el conversor debe aplanarlas en columnas. Hay varias estrategias, y la elección correcta depende de cómo se vaya a consumir el CSV.
Aplanamiento con notación de punto
Las claves anidadas se unen con puntos: {"address": {"city": "Madrid"}} se convierte en una columna llamada address.city con el valor Madrid. Es el enfoque más habitual y funciona bien con herramientas que soportan referencias de campos anidados.
Columnas con índice de array
Los arrays se expanden en columnas numeradas: {"tags": ["a", "b"]} se convierte en tags.0 = a, tags.1 = b. Esto preserva todos los valores pero crea muchas columnas cuando los arrays son grandes.
Cadena JSON como valor de celda
Los valores anidados complejos se serializan como cadenas JSON dentro de la celda CSV: la celda contiene el texto JSON en bruto. Esto preserva la estructura completa, pero requiere que el consumidor parsee el valor de la celda.
Ignorar campos anidados
Algunos conversores descartan completamente los objetos y arrays anidados, conservando solo los campos escalares (cadena, número, booleano, null). Esto produce un CSV limpio pero pierde datos. Útil solo cuando sabes que los campos anidados no son necesarios.
Ejemplos de código
Convertir JSON a CSV de forma programática requiere gestionar la extracción de cabeceras, el entrecomillado de campos y el escapado de delimitadores. La mayoría de los lenguajes tienen soporte nativo o de librería estándar para escribir CSV.
# Using jq to convert JSON array to CSV
echo '[{"name":"Alice","age":30},{"name":"Bob","age":25}]' | \
jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]] ) | @csv'
# → "name","age"
# → "Alice",30
# → "Bob",25
# Using Miller (mlr) for streaming conversion
echo '[{"name":"Alice","age":30}]' | mlr --json --ocsv cat
# → name,age
# → Alice,30
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"os"
)
func main() {
jsonStr := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]`
var data []map[string]interface{}
json.Unmarshal([]byte(jsonStr), &data)
w := csv.NewWriter(os.Stdout)
// Write header
headers := []string{"name", "age"}
w.Write(headers)
// Write rows
for _, row := range data {
record := make([]string, len(headers))
for i, h := range headers {
record[i] = fmt.Sprintf("%v", row[h])
}
w.Write(record)
}
w.Flush()
// → name,age
// → Alice,30
// → Bob,25
}
Preguntas frecuentes
¿Qué estructura JSON espera este conversor?
El conversor espera un array JSON de objetos, como [{"name":"Carlos"},{"name":"Ana"}]. Cada objeto del array se convierte en una fila en la salida, y las claves del objeto se convierten en cabeceras de columna. Un objeto JSON individual (no envuelto en un array) se trata como una tabla de una sola fila.
¿Cómo se manejan los objetos y arrays anidados?
Los valores anidados se aplanan usando notación de punto. Por ejemplo, {"address":{"city":"Madrid"}'} produce una columna llamada address.city. Los arrays se expanden en columnas indexadas (tags.0, tags.1). Esto preserva los datos manteniendo la salida plana.
¿Qué ocurre cuando los objetos tienen claves diferentes?
El conversor recopila todas las claves únicas de todos los objetos del array y las usa como cabeceras de columna. Los objetos a los que les falta una clave obtienen una celda vacía para esa columna. No se pierde ningún dato, y el orden de las columnas sigue el orden en que aparecen las claves por primera vez.
¿Puedo usar punto y coma o tabulador en lugar de coma?
Sí. La herramienta soporta coma, punto y coma, tabulador y pipe como delimitadores. Usa punto y coma cuando tus datos o configuración regional usen comas como separadores decimales (habitual en hojas de cálculo alemanas, francesas y brasileñas). Usa tabuladores para archivos TSV consumidos por herramientas Unix.
¿La conversión es sin pérdidas?
Para arrays JSON planos con valores escalares consistentes, sí. El archivo de salida contiene los mismos datos y puede convertirse de vuelta a JSON idéntico. Para estructuras anidadas, el aplanamiento cambia la forma de los datos. Los valores de array serializados en columnas indexadas o cadenas JSON pueden reconstruirse, pero el proceso de ida y vuelta requiere conocer la estructura original.
¿Qué tamaño de archivo JSON puedo convertir?
La herramienta se ejecuta en tu navegador y procesa los datos en memoria — archivos de hasta 10-20 MB se convierten sin problemas en dispositivos modernos. Para archivos más grandes, usa una herramienta CLI como jq, Miller o un script de Python con el módulo csv, que procesan los datos como un flujo.
¿Es seguro pegar datos sensibles en esta herramienta?
Sí. Todo el procesamiento ocurre en tu navegador usando JavaScript. No se envían datos a ningún servidor. Puedes confirmarlo abriendo las herramientas de desarrollo de tu navegador y comprobando la pestaña Red durante la conversión.