Conversione CSV in JSON — Una Guida Pratica per Sviluppatori

Come convertire dati CSV in JSON, quando usare ogni formato, e gli errori comuni che affliggono gli sviluppatori che lavorano con dati delimitati.

CSV (Comma-Separated Values) e JSON (JavaScript Object Notation) sono due dei formati di scambio dati più ampiamente utilizzati. CSV eccelle nei dati tabulari con overhead minimo, mentre JSON gestisce facilmente dati gerarchici e annidati.

Perché convertire CSV in JSON?

I file CSV sono compatti e facili da generare da fogli di calcolo, database e log. Ma CSV ha limitazioni significative: non c'è uno standard per i tipi (tutto è una stringa), nessun supporto per strutture annidate e gestione ambigua dei caratteri speciali. JSON risolve questi problemi.

Gli scenari comuni includono la migrazione di dati da fogli di calcolo a web application, la trasformazione di esportazioni di database per il consumo di API, il preprocessing di dati per librerie di visualizzazione come D3.js o Chart.js.

La trasformazione di base

La conversione più semplice tratta la prima riga come intestazioni:

nome,età,cittàAlice,30,RomaBob,25,Milano

Si converte in:

[  { "nome": "Alice", "età": 30, "città": "Roma" },  { "nome": "Bob", "età": 25, "città": "Milano" }]

Nota che età è ora un numero, non una stringa. CSV non ha informazioni sui tipi, quindi un buon convertitore deve dedurre i tipi durante la conversione. Il CSV to JSON Converter gestisce questo automaticamente.

Gestione dei delimitatori

La virgola è il delimitatore predefinito, ma i file CSV usano frequentemente punto e virgola, tab o pipe — specialmente nei locali europei dove le virgole sono separatori decimali.

  • Delimitatori personalizzati — I valori separati da tab usano \t
  • Campi tra virgolette — Quando un campo contiene il delimitatore: "Roma, Italia"
  • Virgolette escape — Una virgolette dentro un campo è raddoppiata
  • A capo nei campi — I campi tra virgolette possono coprire più righe

Non provare a dividere sulle virgole in modo naif — usa una libreria di parsing CSV adeguata.

Coercizione dei tipi

Poiché CSV non distingue tra 42 (numero) e "42" (stringa), hai bisogno di una strategia per la deduzione dei tipi:

function coerce(valore) {  if (valore === '') return null;  if (valore === 'true') return true;  if (valore === 'false') return false;  if (/^-?\d+(\.\d+)?$/.test(valore)) return Number(valore);  return valore;}

Dati annidati

CSV è piatto per progetto. Per strutture annidate, usa la notazione puntata nelle intestazioni (indirizzo.città) o la notazione parentesi (tags[0], tags[1]).

Errori comuni

  • Codifica caratteri — I file CSV possono essere UTF-8, Latin-1 o Windows-1252.
  • Lunghezze di riga incoerenti — Alcune righe possono avere meno colonne delle intestazioni.
  • CSV senza intestazioni — Non tutti i file CSV hanno intestazioni.
  • File grandi — Non caricare un CSV da 2 GB in memoria. Usa parser in streaming.
  • BOM (Byte Order Mark) — Alcuni CSV iniziano con BOM UTF-8 che può rompere il parsing.

Provalo

Usa uno strumento locale per convertire CSV in JSON — nessun dato viene caricato.

Frequently asked questions

Qual è la differenza tra CSV e JSON?
CSV (Comma-Separated Values) è un formato tabulare piatto dove ogni riga è una colonna e i valori sono separati da virgole. JSON (JavaScript Object Notation) è un formato gerarchico che supporta oggetti annidati, array e valori tipizzati.
Posso convertire CSV con valori JSON annidati di nuovo in CSV?
Non direttamente. CSV è un formato piatto — non può rappresentare strutture annidate.
Come gestisco i file CSV con virgole all'interno dei valori?
I valori che contengono virgole devono essere racchiusi tra virgolette doppie.
È sicuro convertire dati CSV contenenti chiavi API online?
Solo se il convertitore viene eseguito interamente nel tuo browser.