Convertitore da CSV a JSON

Converti valori separati da virgole in array o oggetti JSON.

Informazioni su CSV → JSON

Il CSV (Comma-Separated Values) è un formato di dati tabulare semplice, mentre il JSON (JavaScript Object Notation) è il formato standard delle API e delle applicazioni web. Questo strumento converte tra i due, gestendo i campi tra virgolette, i caratteri di escape e vari separatori. Quando «La prima riga è un'intestazione» è spuntato, i nomi delle colonne diventano le chiavi degli oggetti JSON.

Come funziona

  1. Incolla il tuo CSV: rilascia il tuo testo CSV nel campo di input. Scegli il separatore corrispondente ai tuoi dati (virgola, tabulazione, punto e virgola o barra verticale) dal menu a tendina.
  2. Configura le opzioni: spunta «Prima riga = intestazione» se la prima riga contiene nomi di colonne (diventeranno le chiavi JSON). Spunta «Rilevamento automatico dei tipi» per convertire numeri e booleani automaticamente.
  3. Converti: ogni riga CSV diventa un oggetto JSON con le chiavi derivate dall'intestazione, o un array semplice se non c'è intestazione.
  4. Copia o scarica: copia l'array JSON o scarica un file .json da usare nel codice o nelle API.

Perché convertire CSV in JSON?

Il CSV è il formato di esportazione universale di fogli di calcolo, database e strumenti di analisi, ma la maggior parte delle API moderne, delle applicazioni JavaScript e dei database NoSQL funziona in JSON. Convertire esportazioni CSV da Google Sheets, Excel, Airtable o strumenti di database in JSON è un compito quotidiano nel data engineering, nello sviluppo web e nell'integrazione di API. Questo convertitore gestisce i casi comuni: campi tra virgolette contenenti virgole, virgolette di escape al loro interno, fine riga Windows (CRLF), e colonne miste numero/stringa con rilevamento intelligente dei tipi.

Funzionalità

Cos'è la conversione da CSV a JSON?

La conversione da CSV a JSON prende un file di testo tabellare piatto (righe di valori separati da virgola) ed emette un array JSON dove ogni riga diventa un oggetto con chiavi date dalle intestazioni di colonna. Gli stessi dati ("nome,età" nuova riga "Alice,30" nuova riga "Bob,25") passano da un CSV a due righe a un array JSON di due oggetti, ciascuno con i campi nome ed età. La conversione è reversibile (json-to-csv copre la direzione inversa).

Il CSV rimane il formato di esportazione universale per i fogli di calcolo (Excel, Google Sheets, Numbers, LibreOffice Calc) e database SQL (mysqldump, pg_dump). JSON è il formato dominante per le API web, i database NoSQL e le applicazioni JavaScript. Convertire tra i due è il compito di interoperabilità più comune nell'ingegneria dei dati, nelle pipeline ETL e nel lavoro front end.

Questo convertitore gestisce quattro delimitatori (virgola, punto e virgola, tab, pipe), righe di intestazione opzionali e rilevamento automatico di tipi numerici e booleani. Implementa le regole di quotazione RFC 4180 in modo che i campi quotati con virgole incorporate, nuove righe o virgolette doppie siano analizzati correttamente. L'output è JSON formattato con indentazione di due spazi pronto per la copia o il download.

Cosa c'è dentro il convertitore

La barra di controllo in alto espone le tre manopole che cambiano il comportamento di parsing: un menu a tendina del delimitatore (virgola, punto e virgola, tab o pipe), una casella di controllo La prima riga è intestazione e una casella di controllo Rileva automaticamente i tipi. Scegli prima il delimitatore che corrisponde ai tuoi dati sorgente, poi decidi se la riga di intestazione deve essere promossa a chiavi dell'oggetto o tenuta come riga di dati.

Le due textarea mostrano l'input CSV a sinistra e l'output JSON a destra. L'output è in sola lettura e si aggiorna dopo aver cliccato Converti in JSON. Un contatore di righe sotto i pulsanti mostra quante righe il parser ha riconosciuto; se differisce da quello che ti aspettavi, ricontrolla il delimitatore o cerca virgolette non bilanciate nel tuo input.

Cinque pulsanti di azione si trovano sotto i pannelli: Converti in JSON esegue la conversione, Copia scrive l'output negli appunti, Esempio carica un CSV di esempio così puoi vedere il formato atteso, Cancella svuota entrambe le textarea e Scarica salva il JSON come file .json. C'è anche una tabella di anteprima nascosta che appare quando clicchi Esempio, mostrando le righe analizzate in un layout tabellare.

Storia e contesto

Le schede perforate Hollerith inaugurano i dati tabellari (1890)

Il censimento USA del 1890 girò sulle schede perforate di Herman Hollerith, ogni scheda contenendo colonne di dati in posizioni fisse. L'idea di righe e colonne come formato dati precede i computer digitali di 50 anni. Ogni formato tabellare moderno (CSV, TSV, Excel, Parquet) traccia la sua forma rettangolare alle schede perforate. La Computing-Tabulating-Recording Company che è nata dai brevetti di Hollerith è diventata IBM nel 1924.

Il CSV emerge dall'I/O diretto da lista di FORTRAN (1972)

Il compilatore FORTRAN di IBM nel 1972 ha introdotto l'I/O diretto da lista dove i valori separati da virgole potevano essere letti in più variabili in una singola chiamata. La convenzione si è diffusa a BASIC, ai formati di report mainframe e all'informatica personale primordiale. Entro gli anni 1980 la maggior parte dei programmi di fogli di calcolo (VisiCalc, Lotus 1-2-3, Excel) poteva esportare testo separato da virgole. Non c'era una singola specifica, quindi i dialetti proliferarono.

L'RFC 4180 standardizza CSV (2005)

L'RFC 4180 di Yakov Shafranovich, pubblicato nell'ottobre 2005, ha dato al CSV la sua prima specifica ampiamente citata. Ha definito l'uso di terminazioni di riga CRLF, l'escape delle virgolette doppie (una virgoletta dentro un campo quotato è scritta come due virgolette) e un singolo carattere delimitatore. L'RFC era Informational, non Proposed Standard, quindi molti strumenti ancora deviano da esso, ma RFC 4180 rimane il riferimento canonico per come appare il CSV ben formato.

JSON specificato (2001) e standardizzato (2013)

Douglas Crockford ha documentato JSON nell'aprile 2001. Era un formato ovvio per la serializzazione degli oggetti JavaScript ma si è rapidamente diffuso a ogni linguaggio. ECMA-404 l'ha standardizzato nel 2013, RFC 8259 ha sostituito RFC 4627 nel 2017. Il formato è intenzionalmente minimale (nessun commento, nessuno schema), che è esattamente perché è diventato la lingua franca delle API.

Emergono varianti CSV specifiche per locale (dagli anni 1990 in poi)

Nei paesi dove la virgola è usata come separatore decimale (Francia, Germania, gran parte dell'Europa continentale, Brasile), Excel esporta CSV con un delimitatore di punto e virgola per evitare conflitti con le virgole decimali. Nei paesi anglofoni la virgola rimane. La stessa installazione di Excel produce CSV diverso a seconda del locale del sistema operativo, motivo per cui questo convertitore espone un menu a tendina del delimitatore invece di indovinare.

PapaParse e l'ascesa del CSV in-browser (2014)

PapaParse di Matt Holt (2014) è diventato il parser CSV JavaScript de facto. Il suo design (rilevamento automatico del delimitatore, gestione di file di grandi dimensioni con web worker, conformità rigorosa a RFC 4180) è diventato il modello per ogni convertitore in-browser che è seguito. Questo strumento implementa un parser più leggero ottimizzato per i quattro delimitatori comuni e i casi RFC 4180 più citati, senza i worker (che non sono necessari per gli input da kilobyte a megabyte tipici di questa UI).

Flussi pratici

Esportazione foglio di calcolo a body di richiesta API

Hai esportato una lista contatti di 200 righe da Google Sheets come CSV. Incolla qui, lascia La prima riga è intestazione selezionata, clicca Converti. L'array JSON di output è pronto da POST a un endpoint API CRM che si aspetta bulk create.

File di seed del database da CSV

Hai un CSV di prodotti da un sistema legacy. Converti in JSON, salva come seed.json e caricalo in MongoDB o DynamoDB con mongoimport o AWS CLI. L'array JSON si mappa direttamente a una collection senza uno schema esplicito.

Dati per librerie di grafici (D3, Chart.js, Recharts)

D3.js accetta CSV direttamente via d3.csv, ma Chart.js e Recharts vogliono JSON. Converti qui il tuo CSV delle vendite mensili, inserisci l'array risultante nel tuo componente React e passalo a una prop del grafico. L'opzione Rileva automaticamente i tipi assicura che le colonne numeriche diventino numeri reali, non stringhe.

Dati mock per un frontend

Quando si costruisce un'UI prima che esista il backend, i dati mock vivono bene in un file JSON importato con require o fetch. Abbozza i tuoi record in un foglio di calcolo, esporta CSV, converti qui e incolla in mockData.json. Itera modificando il foglio di calcolo (che è più facile che modificare JSON a mano) e riconvertendo.

Analisi file di log con jq

Alcuni log del server sono in stile CSV. Converti in JSON, poi passa attraverso jq per filtrare, ordinare e aggregare. La conversione colma il divario tra log a file piatto e strumenti di stream processing che si aspettano record strutturati.

Importazione bulk CMS

Le piattaforme CMS headless (Contentful, Sanity, Strapi, Directus) tipicamente accettano importazioni JSON. Gli editor scrivono contenuto in un foglio di calcolo familiare, tu converti qui ed esegui uno script di importazione una tantum. La riga di intestazione diventa i nomi dei campi che si mappano allo schema del tuo CMS.

Insidie comuni

Campi quotati con virgole interne

Una riga come 1,"Smith, John",30 ha tre campi logici, non quattro, perché la virgola dentro il campo quotato è dati, non delimitatore. Questo parser rispetta l'escape delle virgolette doppie RFC 4180, ma un CSV malformato (virgoletta di chiusura mancante, virgolette non corrispondenti) produrrà JSON privo di senso. Usa un linter CSV o importa prima il file in un foglio di calcolo per far emergere errori strutturali.

Nuove righe incorporate dentro campi quotati

RFC 4180 permette nuove righe letterali dentro campi quotati con virgolette doppie, ma molti parser semplici basati su righe trattano ogni nuova riga come un separatore di record. Se il tuo CSV ha commenti o indirizzi multi riga dentro le virgolette, il conteggio delle righe potrebbe non corrispondere al conteggio visivo delle righe. Questo convertitore le gestisce correttamente, ma gli strumenti a valle potrebbero non farlo.

Byte Order Mark (BOM) all'inizio del file

Gli strumenti Windows (specialmente Excel) a volte aggiungono ai file CSV UTF-8 un BOM di tre byte (EF BB BF). Quando copi da un file con BOM, la prima intestazione ottiene un prefisso invisibile che non corrisponde a "name" con "name" nel tuo codice. Apri il file in un editor esadecimale o rimuovi i BOM con un one liner (sed in unix, Get-Content in PowerShell) prima di incollare qui.

Virgola contro punto e virgola per locale

Un'esportazione Excel in locale francese usa punto e virgola perché le virgole sono separatori decimali. Importarla con il delimitatore virgola predefinito divide 1,234 in due campi. Scegli sempre il delimitatore che corrisponde alla sorgente. Se non sei sicuro, guarda la prima riga in un editor di testo semplice; il separatore ovvio è quello che vuoi.

Zeri iniziali persi nella coercizione di tipo

Codici postali, numeri di telefono e SKU di prodotti spesso iniziano con uno zero (per esempio, "01234"). Rileva automaticamente i tipi li coercizza a interi, perdendo lo zero iniziale (1234). Per le colonne dove gli zeri iniziali contano, deseleziona Rileva automaticamente i tipi così i valori rimangono stringhe. Oppure converti e poi avvolgi manualmente i campi interessati tra virgolette.

Iniezione di formula Excel (bomba CSV)

Se una cella CSV inizia con =, +, - o @, Excel può valutarla come formula quando il file viene aperto. =cmd|'/c calc'!A1 lancia la calcolatrice sui sistemi Windows. Questo è un vettore di attacco noto quando le app web esportano dati controllati dall'utente in CSV. La conversione in JSON neutralizza la minaccia (JSON non ha valutazione di formule), ma il CSV originale rimane pericoloso.

Privacy e gestione dei dati

Tutto il parsing avviene nel tuo browser usando una piccola funzione JavaScript. Non inviamo il tuo CSV o JSON a un server, non registriamo input e non memorizziamo output. I pulsanti Copia e Scarica interagiscono con il tuo sistema operativo attraverso API standard di gesto utente e sono invisibili a terze parti.

Una volta caricata la pagina, lo strumento gira offline. Puoi disconnetterti dalla rete e convertire liste clienti, SKU interni o qualsiasi dato che non deve lasciare il tuo dispositivo. Lo strumento è sicuro per flussi adiacenti a HIPAA perché il percorso dei dati non attraversa mai un confine esterno.

Quando non usare questo convertitore

File molto grandi (sopra i 10 MB)

Il convertitore tiene l'intero input in memoria e lo elabora in modo sincrono, il che congela la scheda del browser su CSV multi milione di righe. Per file sopra i 10 megabyte, usa un parser di streaming (modulo csv di Python, csv-parse di Node, crate csv di Rust) che legge una riga alla volta.

Forma di oggetto annidato nelle celle

Il CSV è piatto per design. Se i tuoi dati hanno oggetti o array annidati dentro le celle (per esempio, una colonna tags con valori separati da virgola), la conversione li tratta come stringhe, non array. Avrai bisogno di un passo di post elaborazione in JavaScript o Python per dividere la stringa e ricostruire la forma annidata.

Dati binari o non UTF-8

I file CSV da sistemi Windows più vecchi possono essere codificati come Windows-1252 (CP-1252) invece di UTF-8. I caratteri speciali (é, ñ, ü) appaiono come mojibake quando incollati in una textarea UTF-8. Risalva il file come UTF-8 nel tuo editor di testo (o esegui iconv dalla riga di comando) prima di incollare.

Dati di streaming in tempo reale

Se il tuo CSV viene aggiunto continuamente (un feed di log in stile tail), questo strumento batch non può tenere il passo. Usa un parser di streaming convogliato a un websocket o un database con una modalità di ingest CSV (Postgres COPY FROM, MySQL LOAD DATA INFILE).

Altre domande

Il parser è strettamente conforme RFC 4180?

Per lo più. Il parser gestisce l'escape delle virgolette doppie (due virgolette dentro un campo quotato significano una virgoletta letterale), campi quotati con virgole e nuove righe incorporate, e terminazioni di riga CRLF o LF. Devia dallo stretto RFC 4180 accettando campi non quotati con spazio bianco iniziale o finale (che la specifica vieta). Questa tolleranza pragmatica corrisponde a quello che la maggior parte degli esportatori CSV del mondo reale emette.

Come influenza l'output il CSV bizzarro di Excel?

Excel aggiunge BOM ai file UTF-8, a volte usa la codifica Windows-1252 e preferisce i punti e virgola nei locali non inglesi. Rimuovi il BOM e risalva come UTF-8 prima di incollare. Scegli il delimitatore giusto dal menu a tendina. Attenzione agli zeri iniziali sulle colonne tipo numero; Excel spesso li elimina da solo quando apri il CSV.

E UTF-8 con BOM contro UTF-8 puro?

UTF-8 con BOM ha un prefisso di tre byte (EF BB BF) che segnala la codifica. La maggior parte degli strumenti web (browser, parser JSON) preferisce UTF-8 puro senza BOM. Se il tuo CSV è venuto dall'esportazione UTF-8 di Excel, il BOM potrebbe essere presente, e il primo campo di intestazione lo conterrà silenziosamente. Rimuovi il BOM (sed -i '1s/^\xEF\xBB\xBF//' file.csv) prima di incollare.

Posso incorporare JSON dentro una cella CSV?

Puoi, racchiudendo il JSON in virgolette doppie e facendo escape delle virgolette interne. Il convertitore tratta la cella come una stringa, quindi il JSON dentro rimane come stringa nell'output. Un passo di post elaborazione (JSON.parse su quel campo nel tuo codice) ricostruisce l'oggetto incorporato. Questo è un pattern comune quando si spedisce JSON dentro esportazioni di fogli di calcolo.

Perché il mio JSON di output ha alcune colonne mancanti?

Molto probabilmente una riga ha meno colonne dell'intestazione (una cella vuota finale è stata eliminata all'esportazione). Il parser emette undefined per i valori mancanti, che JSON.stringify elimina, quindi l'oggetto risultante ha meno chiavi del previsto. Apri il file sorgente in un foglio di calcolo per vedere quali righe sono corte, e o correggi i dati o post elaborali per riempire i default.

Supporta TSV (valori separati da tabulazione)?

Sì, scegli Tab dal menu a tendina del delimitatore. I file TSV sono comuni quando i file CSV avrebbero troppe celle quotate (perché i tab sono raramente dati validi nelle celle dei fogli di calcolo). Il parser gestisce TSV in modo identico tranne che per il delimitatore; le regole di quotazione ed escape sono le stesse.

Strumenti correlati