Convertitore da JSON a CSV
Converti array JSON di oggetti in formato CSV o TSV.
Come usare
1. Incolla un array JSON di oggetti (o un singolo oggetto) nell'area di input.
2. Scegli il tuo separatore · virgola per CSV, tabulazione per TSV, o un altro formato.
3. Clicca su Converti per generare l'output CSV.
4. Copia negli appunti o scarica come file.
Gli oggetti e gli array annidati sono serializzati in stringhe JSON nell'output CSV. Tutta l'elaborazione è lato client · i tuoi dati non lasciano mai il tuo browser.
Perché la conversione JSON-a-CSV è un workflow cosi comune
JSON è il formato di payload dominante per le moderne API web; CSV è il formato minimo comune denominatore per i dati tabulari. Excel, Google Sheets, SQL LOAD DATA, R, Pandas, Tableau, Power BI e quasi ogni pipeline ETL possono ingerire CSV senza alcuna configurazione. Quindi quando l'output di un'API deve arrivare in un foglio di calcolo per uno stakeholder, o in un database per analisi, qualcuno deve appiattire il JSON in righe. Questo strumento esegue quell'appiattimento nel tuo browser, senza roundtrip al server e senza upload di dati potenzialmente sensibili.
Il formato CSV (RFC 4180)
Non esiste un singolo standard CSV formale, ma RFC 4180 (ottobre 2005, "Common Format and MIME Type for Comma-Separated Values (CSV) Files") è ciò che più si avvicina a un riferimento canonico nel settore. Le regole su cui tutti concordano:
- Un record per riga, separati da interruzioni di riga. L'RFC specifica CRLF; la maggior parte dei parser moderni accetta anche LF.
- I campi all'interno di un record sono separati da un singolo carattere delimitatore, una virgola nella forma canonica, ma punto e virgola, tab o pipe sono comuni in varianti regionali e legacy.
- Ogni record dovrebbe avere lo stesso numero di campi. I valori mancanti diventano celle vuote; delimitatori extra sono un errore.
- La riga di intestazione è opzionale; se presente, è la prima riga.
- I campi contenenti virgole, interruzioni di riga o doppi apici devono essere racchiusi tra doppi apici.
- I doppi apici incorporati all'interno di un campo tra virgolette sono escapati raddoppiandoli:
"She said ""hello""". - Il tipo MIME registrato per CSV è
text/csv.
Perché quattro delimitatori invece di uno
Il default è la virgola, ma ogni delimitatore risolve un problema specifico:
- Virgola (
,), lo standard negli USA, nel Regno Unito e in altre lingue anglofone. Excel legge CSV con virgole quando l'impostazione regionale del sistema operativo è inglese. Default perapplication/csvnell'ecosistema di strumenti più ampio. - Punto e virgola (
;), il default de facto nell'Europa continentale, in America Latina e in altre regioni dove la virgola è il separatore decimale. Excel usa il separatore di elenco del sistema operativo, quindi un Excel con locale francese o tedesco produce CSV separati da punto e virgola. - Tab, TSV (valori separati da tab) è comune nei dati scientifici, in bioinformatica e in qualsiasi contesto in cui i dati stessi contengono virgole (campi di testo libero, indirizzi).
- Pipe (
|), preferito in alcuni sistemi aziendali legacy dove i dati possono contenere virgole, punto e virgola E tab. Raramente la prima scelta giusta ma utile quando nient'altro funziona.
Appiattire JSON nidificato: tre strategie
JSON è gerarchico; CSV è piatto. Non esiste una mappatura senza perdite di uso generale tra i due. Quando l'input contiene oggetti o array nidificati, ogni convertitore deve fare una scelta:
- Inline come stringa JSON. La parte nidificata viene serializzata di nuovo in JSON e inserita in una singola cella CSV. L'approccio di default di questo strumento. Senza perdite; sicuro per il round-trip; il consumatore deve fare il parsing del JSON interno se vuole la struttura.
- Appiattimento con chiave puntata.
{address: {street, city}}diventa le colonneaddress.streeteaddress.city.json_normalizedi Pandas funziona in questo modo. Più pulito per gli analisti ma il numero di colonne esplode per dati profondamente nidificati. - Esplosione di righe. Un array diventa più righe, con i campi genitori ripetuti.
{name: "Alice", tags: ["a", "b"]}diventa due righe, entrambe conname=Alice. Migliore per relazioni uno-a-molti; perde il modello mentale "un record per riga".
Se hai bisogno di output con chiave puntata o esploso in righe, pre-elabora il JSON prima di incollarlo, tramite un piccolo script Python / Node o tramite json_normalize di Pandas.
Intestazioni, round-tripping dei tipi e la trappola dell'auto-formato di Excel
JSON ha un vero sistema di tipi (number, string, boolean, null, array, object); CSV ha solo stringhe. La convenzione è che il consumatore inferisca i tipi dal contesto. Lo strumento genera righe di intestazione dall'unione di tutte le chiavi di tutti gli oggetti di input, lascia i campi mancanti come celle vuote, scrive i booleani come true/false e scrive il null JSON come una cella vuota.
Excel è utile in modi che a volte fanno male:
- Rimozione degli zeri iniziali. Una colonna di codici postali come
01234si apre come il numero1234. Workaround: prefisso con un apostrofo ('01234) all'interno del CSV, o usa la procedura guidata di importazione di Excel e imposta esplicitamente il tipo di colonna su Testo. - Conversione automatica di date. Stringhe che sembrano date (
3/4/5,Mar-23) vengono convertite silenziosamente. Stessi workaround. - Notazione scientifica. ID numerici lunghi (numeri di carta di credito, interi grandi) vengono convertiti in
1.23E+15e perdono precisione. JSON può preservare numeri fino a 253−1 esattamente; per qualsiasi cosa più grande, trasmetti il valore come stringa in JSON. - Mancata corrispondenza UTF-8 BOM. Excel su Windows usa Windows-1252 di default; aprire un CSV UTF-8 senza un BOM corrompe i caratteri non ASCII (é, ü, å diventano mojibake). Aggiungere un BOM UTF-8 (
) all'inizio del file risolve. Google Sheets gestisce UTF-8 senza BOM correttamente, quindi il BOM è specifico della piattaforma.
Iniezione CSV, una nota di sicurezza che vale la pena conoscere
Se un CSV verrà aperto in Excel o Google Sheets, una cella che inizia con =, +, - o @ viene interpretata come una formula. La pagina CSV Injection di OWASP documenta la classe di attacco, una stringa malevola come =cmd|' /c calc'!A0 in un campo inviato dall'utente può eseguire comandi quando un amministratore apre l'esportazione. Pratica difensiva: prefissa qualsiasi cella che inizia con uno di quei quattro caratteri con un apostrofo singolo, o avvolgila in virgolette più un apostrofo iniziale. Importante da sapere se stai esportando contenuto generato dagli utenti.
Casi limite comuni che il convertitore gestisce
- Campo contenente il delimitatore, quotato automaticamente.
San Francisco, CAin un CSV con virgola diventa"San Francisco, CA". - Campo contenente una nuova riga letterale, quotato; il contenuto multi-riga è legale all'interno delle virgolette per RFC 4180.
- Campo contenente un doppio apice, quotato, con l'apice interno raddoppiato:
She said "yes"diventa"She said ""yes""". - Array e oggetti vuoti, serializzati come
[]e{}rispettivamente nelle loro celle. - Record con chiavi diverse, l'unione di tutte le chiavi forma la riga di intestazione; i campi mancanti sono celle vuote.
- Oggetto singolo vs array, un singolo oggetto JSON diventa un CSV a riga singola.
Quando usare questo strumento
- Esportare risposte API per stakeholder che vogliono un foglio di calcolo che possono ordinare e filtrare.
- Importazione in blocco di dati JSON in un database SQL tramite
LOAD DATA INFILE(MySQL) oCOPY(PostgreSQL). Entrambi si aspettano input in forma CSV. - Analisi rapida dei dati in Excel, Google Sheets, Pandas, R, Tableau o Power BI.
- Generare liste di indirizzi da una risposta API JSON di contatti.
- Migrare dati tra sistemi che non condividono un'API ma entrambi parlano CSV.
- Rivedere un file JSON con gli occhi quando è troppo ripetitivo per leggerlo direttamente, la vista foglio di calcolo è spesso più facile.
Privacy
Le esportazioni CSV contengono quasi sempre PII, record dei clienti, dati dei dipendenti, log delle transazioni, liste di contatti. La conversione lato server invia ogni record attraverso l'infrastruttura di una terza parte, dove vive nei log di transito, nei log del server e possibilmente nelle risposte memorizzate nella cache. La conversione basata sul browser mantiene i dati sulla tua macchina. L'intero passaggio di appiattimento e quotatura avviene qui in JavaScript dentro il tuo browser; nulla viene caricato.
Errori comuni
- Delimitatore sbagliato per il pubblico. Inviare un CSV con virgola a un utente Excel francese produce un file a colonna singola. Adatta il delimitatore alla locale del destinatario.
- Incollare un singolo oggetto invece di un array. Un singolo oggetto si converte in un CSV a riga singola con intestazioni di colonna dalle chiavi. Per record multipli, avvolgili in un array.
- Aspettarsi un appiattimento in stile Pandas. Gli oggetti nidificati in questo strumento vengono serializzati come stringhe JSON dentro le celle. Se hai bisogno di colonne
address.street, appiattisci prima. - Usare CSV per numeri molto grandi. JSON rappresenta in modo sicuro interi fino a 253−1 (circa 9 quadrilioni). Oltre, trasmetti come stringa. Excel manometterà ID numerici lunghi anche quando CSV li preserva.
- Aprire in Excel senza pensare alla codifica. I caratteri non ASCII necessitano del BOM UTF-8 per Excel su Windows; Google Sheets e Excel moderno per il web non ne hanno bisogno.
- Esportare testo generato dagli utenti senza sanitizzare i prefissi di formula. Le celle che iniziano con
=,+,-o@sono formule in Excel e Sheets. L'iniezione CSV è un vero attacco contro gli amministratori che aprono file esportati.
Domande frequenti
Il mio JSON ha oggetti nidificati. Come vengono gestiti?
Ogni oggetto o array nidificato viene serializzato come una stringa JSON dentro la sua cella CSV. Quindi {user: {name: "Alice", role: "admin"}} diventa una colonna chiamata user contenente {"name":"Alice","role":"admin"}. Questo fa round-trip senza perdite. Se hai bisogno di colonne separate user.name e user.role, pre-elabora con json_normalize di Pandas o uno script di appiattimento piccolo.
Perché i miei caratteri non inglesi sembrano rotti in Excel?
Excel su Windows apre CSV in Windows-1252 di default. CSV UTF-8 senza un Byte Order Mark sembra mojibake (é → é). La soluzione: o salva il file con un BOM UTF-8, usa la procedura guidata di importazione Dati → Da Testo di Excel e seleziona esplicitamente UTF-8, o apri il file in Google Sheets, che gestisce UTF-8 senza un BOM correttamente.
Lo strumento gestisce le virgole dentro i campi?
Si. Per RFC 4180, i campi contenenti il delimitatore, interruzioni di riga o doppi apici sono automaticamente racchiusi tra doppi apici. I doppi apici incorporati sono escapati raddoppiandoli. Quindi San Francisco, CA diventa "San Francisco, CA" e She said "hi" diventa "She said ""hi""".
Il mio JSON viene inviato a un server?
No. La conversione funziona interamente nel tuo browser. Il contenuto della textarea non viene trasmesso, registrato o memorizzato da nessuna parte. Questo è importante perché i record esportati contengono spesso PII, dati dei clienti, info sui dipendenti, cronologie di transazioni che non vuoi che fluiscano attraverso l'infrastruttura di qualcun altro.
Posso ottenere output separato da tab (TSV)?
Si, scegli "Tab" nel menu a tendina del delimitatore. TSV è la scelta giusta quando i tuoi dati contengono virgole (indirizzi, campi di testo libero, dati finanziari con separatori delle migliaia) e non vuoi avvolgere ogni altra cella tra virgolette. Molti formati di dati bioinformatici e scientifici sono TSV di default.
Qual è il limite di dimensione?
Qualunque cosa il tuo browser possa contenere. Non c'è un limite lato server perché non c'è alcun server coinvolto. Decine di megabyte di JSON si convertono in un secondo o due su un dispositivo moderno; payload da cento megabyte iniziano a rallentare. Per dataset molto grandi, suddividili in batch o passa a un convertitore di streaming dalla riga di comando.
Strumenti correlati
Convertitore CSV → JSON
Converti dati CSV in array o oggetti JSON con separatori personalizzabili.
Formattatore e validatore JSON
Formatta, minifica e valida JSON all'istante. Indentazione e messaggi di errore configurabili.
Generatore di schema JSON
Genera uno JSON Schema da qualsiasi oggetto JSON. Supporta oggetti annidati, array e tutti i tipi.