CSV e JSON: due modi per trasportare gli stessi dati
La maggior parte dei dati tabulari finisce per vivere in uno di due formati. CSV è la lingua madre del foglio di calcolo: un file di testo semplice dove ogni riga è una colonna e le virgole separano le colonne. JSON è il linguaggio delle API e delle applicazioni: un formato strutturato basato su oggetti (coppie chiave-valore) e array (liste ordinate). Descrivono le stesse informazioni in forme molto diverse, ed è esattamente per questo che convertire tra di loro capita così spesso. Questa pagina esegue quella conversione in entrambe le direzioni, interamente nel tuo browser.
CSV brilla ovunque una griglia sembri naturale. Esporta un report da un database, scarica un elenco di ordini o salva un foglio da Excel o Google Sheets, e quasi sempre ottieni CSV. È compatto, leggibile dall'uomo e ogni strumento di analisi al mondo può aprirlo. JSON brilla ovunque il software parli con il software. Le API REST lo inviano e ricevono, i file di configurazione lo usano e JavaScript lo legge senza alcuna libreria di parsing. Quando devi alimentare un'esportazione da foglio di calcolo in un'API o estrarre una risposta API in un foglio di calcolo, stai davvero traducendo tra questi due mondi.

Come righe e intestazioni diventano oggetti
La mappatura è più semplice di quanto sembri. La prima riga di un file CSV è di solito la riga di intestazione, e i nomi di quelle intestazioni diventano le chiavi in JSON. Ogni riga successiva diventa un oggetto, dove ogni cella è abbinata all'intestazione corrispondente. L'intero file diventa un array di quegli oggetti. Quindi un CSV con le colonne nome,email,età si trasforma in una lista come [{"nome": "Ada", "email": "ada@example.com", "eta": "36"}, ...]. Andando nell'altra direzione, da JSON a CSV, si leggono le chiavi del primo oggetto per costruire la riga di intestazione, poi si scrive una riga per oggetto. È un round-trip pulito e prevedibile, purché i dati siano genuinamente tabulari.
Le insidie da conoscere
CSV sembra banale ma nasconde qualche spigolo tagliente. Il più grande sono le virgole all'interno di un campo. Se un indirizzo contiene "Milano, Italia", una divisione ingenua sulle virgole dividerebbe quel singolo valore in due colonne. Lo standard CSV gestisce questo racchiudendo tali campi tra virgolette doppie, e le virgolette all'interno di un campo tra virgolette vengono raddoppiate (""). Un buon convertitore rispetta queste regole in modo che i dati non si spostino silenziosamente di colonna. Attenzione anche al delimitatore: molte esportazioni europee usano il punto e virgola invece della virgola, perché la virgola è già il separatore decimale lì. Anche le tabulazioni e le barre verticali compaiono.
La differenza più profonda riguarda i tipi. CSV non ha alcun concetto di tipi di dati. Tutto è testo, quindi il numero 42, il booleano true e una cella vuota sembrano tutti semplici stringhe. JSON, al contrario, distingue numeri, stringhe, booleani, null e strutture annidate. Quando converti CSV in JSON, i valori arrivano come stringhe a meno che lo strumento non sia configurato per interpretare numeri e booleani. La conversione da JSON a CSV ha il problema opposto: gli oggetti e gli array annidati non si adattano ordinatamente a una griglia piatta, quindi di solito vengono appiattiti o serializzati come stringa in una singola cella. Sapere questo in anticipo ti salva dal chiederti perché una colonna "sembra sbagliata" in seguito.

Un round-trip reale
Ecco uno scenario che si presenta continuamente. Un collega ti invia un foglio di calcolo di nuovi utenti e ti chiede di caricarli tramite un'API interna. L'API accetta solo JSON. Esporti il foglio in CSV, lo incolli qui e ottieni un array pulito di oggetti pronto da inserire nel payload della richiesta. Più tardi, l'API restituisce un elenco JSON dei record che ha creato, e devi riconsegnarlo allo stesso collega per la revisione. Incolli il JSON, lo converti in CSV, e si apre direttamente nel suo foglio di calcolo. Nessuno script, nessuna installazione, solo due rapide traduzioni nel mezzo di un normale flusso di lavoro.
Solo locale, per scelta
Tutto questo avviene nel tuo browser. Il tuo CSV e JSON vengono analizzati e convertiti da JavaScript sul tuo computer, e nulla viene caricato su un server. Questo è importante perché le esportazioni spesso contengono nomi reali, email, dettagli degli ordini o identificatori interni che non dovresti incollare in un servizio remoto casuale. Qui i dati non lasciano mai la pagina. Se vuoi riordinare il risultato in seguito, il nostro formattatore JSON lo formatterà e validerà, e puoi sfogliare il resto dei nostri convertitori di dati per formati correlati.
Domande frequenti
I miei dati vengono caricati da qualche parte?
No. La conversione avviene interamente nel tuo browser usando JavaScript, quindi il tuo CSV e JSON rimangono sul tuo dispositivo e non vengono mai inviati a un server.
Il convertitore gestisce le virgole all'interno dei campi?
Sì. I campi che contengono virgole devono essere racchiusi tra virgolette doppie nel CSV, e il parser rispetta quelle virgolette in modo che il valore rimanga in una singola colonna.
Perché i miei numeri appaiono come testo in JSON?
CSV non ha tipi di dati, quindi ogni cella è testo semplice. I valori diventano stringhe JSON a meno che non venga applicato il parsing di numeri e booleani, perché il file sorgente non fornisce alcun modo per distinguere un numero da una parola.
Cosa succede al JSON annidato quando lo converto in CSV?
Una griglia piatta non può contenere strutture annidate, quindi gli oggetti e gli array annidati vengono tipicamente appiattiti o scritti come un singolo valore serializzato all'interno di una cella.
Posso usare un punto e virgola o una tabulazione invece della virgola?
Sì. Molte esportazioni, specialmente quelle europee, usano punto e virgola o tabulazioni come delimitatori, e lo strumento può leggerli invece della virgola standard.
Converte in entrambe le direzioni?
Sì. Puoi trasformare CSV in JSON e JSON di nuovo in CSV, il che rende semplici i round-trip tra fogli di calcolo e API.
