La conversione da JSON a CSV trasforma dati strutturati dal formato JSON in valori separati da virgola, un formato tabulare che fogli di calcolo, database e strumenti di analisi consumano nativamente. JSON memorizza i dati come oggetti e array annidati senza uno schema fisso. CSV memorizza i dati come righe e colonne, con una riga di intestazione che definisce i nomi dei campi. La conversione è il modo in cui i dati delle API raggiungono i fogli di calcolo e i database.
CSV (Comma-Separated Values) è definito da RFC 4180. Ogni riga è un record, e i campi all'interno di una riga sono separati da un carattere delimitatore, più comunemente una virgola. I campi che contengono il delimitatore, virgolette doppie o interruzioni di riga devono essere racchiusi tra virgolette doppie, con le virgolette interne precedute da un raddoppio. Questo meccanismo di escape è la principale fonte di bug quando si scrive un convertitore da JSON a CSV a mano.
La conversione è diretta quando l'input è un array piatto di oggetti con chiavi consistenti. Ogni oggetto diventa una riga, e ogni chiave univoca diventa un'intestazione di colonna. Oggetti annidati e array richiedono un passaggio di appiattimento, e chiavi inconsistenti tra gli oggetti richiedono una strategia per gestire i campi mancanti — in genere lasciando la cella vuota. Un convertitore affidabile gestisce automaticamente tutti questi casi limite.
Perché convertire JSON in CSV?
Le API restituiscono JSON, ma fogli di calcolo, database SQL e strumenti BI si aspettano dati tabulari. Convertire JSON in CSV consente di spostare i dati tra questi sistemi senza scrivere script di importazione personalizzati.
⚡
Conversione immediata nel browser
Incolla il JSON e scarica il file immediatamente. Nessun caricamento su server, nessun limite di dimensione da API esterne, nessuna attesa in coda di elaborazione.
🔒
Elaborazione con privacy garantita
I tuoi dati rimangono nel browser. La conversione avviene interamente in JavaScript sul tuo dispositivo. Export di database, dati utente e dati finanziari non lasciano mai il tuo computer.
🔀
Supporto per più delimitatori
Scegli tra virgola, punto e virgola, tabulazione o pipe come delimitatore. Usa il punto e virgola per i fogli di calcolo con impostazioni locali europee, la tabulazione per i file TSV, o il pipe per le importazioni in sistemi legacy.
📋
Nessun account richiesto
Apri la pagina e converti. Nessuna registrazione, nessuna chiave API, nessuna installazione CLI. Funziona su qualsiasi dispositivo con un browser moderno.
Casi d'uso della conversione JSON in CSV
Esportazione dati API verso fogli di calcolo
Le API REST restituiscono JSON. Product manager e analisti hanno bisogno di quei dati in Excel o Google Sheets. Converti la risposta API in CSV e aprila direttamente in qualsiasi applicazione per fogli di calcolo.
Importazione massiva in database
PostgreSQL COPY, MySQL LOAD DATA e SQLite .import accettano tutti CSV. Converti il tuo dataset in formato tabulare per un caricamento rapido in massa senza scrivere uno script di importazione personalizzato.
Prototipazione di pipeline ETL
Le pipeline ETL hanno spesso output intermedi difficili da ispezionare come JSON grezzo. Converti l'output di un passaggio in CSV e aprilo in un foglio di calcolo per verificare le trasformazioni prima di collegare l'intera pipeline.
Preparazione di dati di test per QA
I tecnici QA generano fixture di test come JSON, ma molti framework di test e strumenti di data-driven testing accettano CSV per input di test parametrizzati. Converti le fixture in CSV senza riformattazione manuale.
Analisi dei log e reportistica
I log JSON strutturati di applicazioni e servizi cloud possono essere convertiti in CSV per l'importazione in strumenti BI come Tableau, Power BI o Looker per visualizzazione e reportistica.
Elaborazione dati in ambito accademico
Studenti e ricercatori che lavorano con API di dati aperti ricevono risposte JSON. Convertire in CSV permette l'analisi in R, pandas, SPSS o Excel senza scrivere codice di parsing.
Riferimento ai delimitatori CSV
Il carattere delimitatore separa i campi all'interno di ogni riga. La virgola è il più comune, ma altri delimitatori sono standard in contesti specifici. Scegliere il delimitatore sbagliato causa la fusione o la divisione errata dei campi quando il file viene aperto.
Delimitatore
Carattere
Estensione
Quando 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
Gestione del JSON annidato in CSV
CSV è un formato piatto senza modo nativo di rappresentare oggetti o array annidati. Quando il JSON contiene strutture annidate, il convertitore deve appiattirle in colonne. Esistono diverse strategie, e la scelta giusta dipende da come il CSV verrà utilizzato.
Appiattimento con notazione a punto
Le chiavi annidate vengono unite con punti: {"address": {"city": "Roma"}} diventa una colonna chiamata address.city con valore Roma. Questo è l'approccio più comune e funziona bene con gli strumenti che supportano riferimenti a campi annidati.
Colonne con indice di array
Gli array vengono espansi in colonne numerate: {"tags": ["a", "b"]} diventa tags.0 = a, tags.1 = b. Questo preserva tutti i valori ma crea molte colonne quando gli array sono grandi.
Fallback a stringa JSON
I valori annidati complessi vengono serializzati come stringhe JSON all'interno della cella CSV: la cella contiene il testo JSON grezzo. Questo preserva la struttura completa ma richiede che il consumatore esegua il parsing del valore della cella.
Ignorare i campi annidati
Alcuni convertitori eliminano completamente oggetti e array annidati, mantenendo solo i campi scalari (stringa, numero, booleano, null). Questo produce un CSV pulito ma perde dati. Utile solo quando si sa che i campi annidati non sono necessari.
Esempi di codice
Convertire JSON in CSV in modo programmatico richiede di gestire l'estrazione delle intestazioni, la quotatura dei campi e l'escaping del delimitatore. La maggior parte dei linguaggi dispone di supporto integrato o nella libreria standard per la scrittura di 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
}
Domande frequenti
Che struttura JSON si aspetta questo convertitore?
Il convertitore si aspetta un array JSON di oggetti, come [{"name":"Alice"},{"name":"Bob"}]. Ogni oggetto nell'array diventa una riga nell'output, e le chiavi dell'oggetto diventano intestazioni di colonna. Un singolo oggetto JSON (non racchiuso in un array) viene trattato come una tabella a una riga.
Come vengono gestiti oggetti e array annidati?
I valori annidati vengono appiattiti usando la notazione a punto. Ad esempio, {"address":{"city":"Roma"}'} produce una colonna chiamata address.city. Gli array vengono espansi in colonne indicizzate (tags.0, tags.1). Questo preserva i dati mantenendo l'output piatto.
Cosa succede quando gli oggetti hanno chiavi diverse?
Il convertitore raccoglie tutte le chiavi univoche tra tutti gli oggetti dell'array e le usa come intestazioni di colonna. Gli oggetti privi di una chiave ricevono una cella vuota per quella colonna. Nessun dato viene perso, e l'ordine delle colonne segue l'ordine in cui le chiavi compaiono per la prima volta.
Posso usare un punto e virgola o una tabulazione invece della virgola?
Sì. Lo strumento supporta virgola, punto e virgola, tabulazione e pipe come delimitatori. Usa il punto e virgola quando i tuoi dati o le impostazioni locali usano la virgola come separatore decimale (comune nei fogli di calcolo tedeschi, francesi e brasiliani). Usa la tabulazione per file TSV consumati da strumenti Unix.
La conversione è senza perdita di dati?
Per array JSON piatti con valori scalari consistenti, sì. Il file di output contiene gli stessi dati e può essere riconvertito in JSON identico. Per strutture annidate, l'appiattimento cambia la forma dei dati. I valori degli array serializzati in colonne indicizzate o stringhe JSON possono essere ricostruiti, ma il round-trip richiede la conoscenza della struttura originale.
Quanto grande può essere un file JSON da convertire?
Lo strumento funziona nel browser ed elabora i dati in memoria — file fino a 10–20 MB si convertono senza problemi su dispositivi moderni. Per file più grandi, usa uno strumento CLI come jq, Miller o uno script Python con il modulo csv, che elaborano i dati in streaming.
È sicuro incollare dati sensibili in questo strumento?
Sì. Tutta l'elaborazione avviene nel browser tramite JavaScript. Nessun dato viene inviato a nessun server. Puoi verificarlo aprendo i DevTools del browser e controllando la scheda Rete durante la conversione.