JSON para CSV/ Array JSON → Arquivo CSV
Converta arrays JSON para CSV com um clique — delimitadores personalizados,achatamento de objetos aninhados, download direto.
Delimitador
JSON
CSV
Esta ferramenta resolveu o seu problema?
Exemplos 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
Perguntas frequentes
Quais são os casos de uso comuns de JSON para CSV?
JSON é o formato de dados API padrão; CSV é o formato para planilhas (Excel, Google Sheets) e ferramentas de análise de dados (pandas, R). Casos comuns: exportar dados de API para Excel, importar resultados de consultas de banco de dados.
Como objetos JSON aninhados são tratados?
Dois métodos: 1) Achatar — user.name e user.age se tornam duas colunas. 2) Serializar — o objeto aninhado é convertido em string JSON em uma única célula. A opção 'Achatarr objetos aninhados' usa notação de pontos.
Como caracteres especiais em CSV são tratados?
RFC 4180 requer: campos contendo vírgulas, quebras de linha ou aspas duplas devem estar entre aspas duplas. Esta ferramenta trata esses casos automaticamente.
Quando usar ponto e vírgula em vez de vírgulas?
Em alguns países europeus (Alemanha, França, Holanda), vírgulas servem como separadores decimais, então o Excel usa ponto e vírgula (;) como delimitadores CSV padrão.
Como converter JSON para CSV em Python?
Com a biblioteca padrão: 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). Com pandas também é possível.
Outros formatos além de arrays JSON podem ser convertidos?
Suportados: arrays JSON (mais comum), um objeto JSON único (uma linha de saída), um objeto com campo array (o primeiro array é extraído). Não suportados: arrays profundamente aninhados, arrays irregulares.