JSON a CSV/ Array JSON → Archivo CSV
Convierte arrays JSON a CSV con un clic — delimitadores personalizados, aplanamiento de objetos anidados, descarga directa.
Delimitador
JSON
CSV
¿Esta herramienta resolvió tu problema?
Ejemplos de código
JavaScript / Node.js
// Using json2csv npm package
import { Parser } from 'json2csv';
const data = [
{ name: 'Alice', age: 30, city: 'Beijing' },
{ name: 'Bob', age: 25, city: 'Shanghai' },
];
const parser = new Parser({ fields: ['name', 'age', 'city'] });
const csv = parser.parse(data);
// name,age,city
// Alice,30,Beijing
// Bob,25,Shanghai
// Built-in (no deps)
const toCsv = (arr) => {
const keys = Object.keys(arr[0]);
const rows = arr.map(r => keys.map(k =>
JSON.stringify(r[k] ?? '')).join(','));
return [keys.join(','), ...rows].join('\n');
};Python (pandas)
import pandas as pd
import json
# From JSON string
json_str = '[{"name":"Alice","age":30},{"name":"Bob","age":25}]'
df = pd.read_json(json_str)
df.to_csv('output.csv', index=False)
# From nested JSON (flatten)
from pandas import json_normalize
data = [{"user": {"name": "Alice"}, "score": 100}]
df = json_normalize(data)
# Columns: user.name, score
df.to_csv('flat.csv', index=False)
# Custom delimiter
df.to_csv('output.csv', sep=';', index=False)Go
import (
"encoding/csv"
"encoding/json"
"os"
)
type Row struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
data := []Row{{"Alice", 30}, {"Bob", 25}}
f, _ := os.Create("output.csv")
w := csv.NewWriter(f)
w.Write([]string{"name", "age"})
for _, r := range data {
w.Write([]string{r.Name, fmt.Sprint(r.Age)})
}
w.Flush()
}Shell (jq + awk)
# jq: extract fields as TSV cat data.json | jq -r ' .[] | [.name, .age, .city] | @tsv ' > output.tsv # With headers cat data.json | jq -r ' ["name","age","city"], (.[] | [.name, .age, .city]) | @csv ' > output.csv # Using Miller (mlr) mlr --json --ocsv cat data.json > output.csv
Preguntas frecuentes
¿Cuáles son los casos de uso comunes de JSON a CSV?
JSON es el formato de datos API estándar; CSV es el formato para hojas de cálculo (Excel, Google Sheets) y herramientas de análisis de datos (pandas, R). Casos comunes: exportar datos de API a Excel, importar resultados de consultas de bases de datos.
¿Cómo se manejan los objetos JSON anidados?
Dos enfoques: 1) Aplanar — user.name y user.age se convierten en dos columnas. 2) Serializar — el objeto anidado se convierte en una cadena JSON en una sola celda. La opción 'Aplanar objetos anidados' usa notación de puntos.
¿Cómo se manejan los caracteres especiales en CSV?
RFC 4180 requiere: los campos que contienen comas, saltos de línea o comillas dobles deben estar entre comillas dobles. Esta herramienta maneja estos casos automáticamente.
¿Cuándo usar punto y coma en lugar de comas?
En algunos países europeos (Alemania, Francia, Países Bajos), las comas sirven como separadores decimales, por lo que Excel usa punto y coma (;) como delimitadores CSV predeterminados.
¿Cómo convertir JSON a CSV en Python?
Con la biblioteca estándar: import json, csv; data = json.load(open('data.json')); writer = csv.DictWriter(open('out.csv', 'w'), fieldnames=data[0].keys()); writer.writeheader(); writer.writerows(data). Con pandas también es posible.
¿Se pueden convertir formatos distintos a arrays JSON?
Soportados: arrays JSON (más común), un objeto JSON único (una fila de salida), un objeto con campo array (se extrae el primer array). No soportados: arrays profundamente anidados, arrays irregulares.