Vai al contenuto

Convertitore da CSV a JSON - Strumento Gratuito di Conversione File Online

Converti CSV in JSON e JSON in CSV istantaneamente nel tuo browser. Conversione dati sicura e veloce con anteprima e download. Nessun caricamento richiesto.

Convertitore di File CSV/JSON

Converti tra formati CSV e JSON con facilità. Carica il tuo file, visualizza in anteprima i dati e scarica il risultato convertito.

Convertitore da CSV a JSON

Convertitore da JSON a CSV

Calcolatore di caricamento...
📚

Documentazione

Che cos'è un convertitore da CSV a JSON?

Un convertitore da CSV a JSON è uno strumento che trasforma i dati dal formato CSV (valori separati da virgole) al formato JSON (notazione degli oggetti JavaScript), o viceversa. Il convertitore funziona interamente nel browser web. Non invia mai il file caricato a un server, quindi i dati restano sul dispositivo dell'utente.

Il CSV è un formato di testo semplice usato per archiviare tabelle, ad esempio fogli di calcolo esportati da Excel o Google Sheets. Il JSON è un formato testuale basato su coppie chiave-valore, ampiamente usato per trasferire dati tra applicazioni web e API. Poiché i due formati organizzano i dati in modo diverso, la conversione tra l'uno e l'altro richiede un insieme definito di regole, descritte di seguito.

Come convertire CSV in JSON

  1. Fare clic su "Carica file CSV" e scegliere un file .csv dal dispositivo.
  2. Lo strumento mostra un'anteprima del contenuto grezzo del file.
  3. Fare clic su "Converti in JSON". Lo strumento legge la prima riga come intestazioni delle colonne e trasforma ogni altra riga in un oggetto JSON.
  4. Il risultato appare nell'anteprima dell'output, formattato con il rientro.
  5. Fare clic su "Scarica JSON" per salvarlo come file .json oppure su "Copia JSON" per copiare il testo.

Come convertire JSON in CSV

  1. Fare clic su "Carica file JSON" e scegliere un file .json. Il file deve contenere un array JSON di oggetti, ad esempio [{"Name":"Ann"},{"Name":"Bo"}].
  2. Lo strumento mostra un'anteprima del testo JSON grezzo.
  3. Fare clic su "Converti in CSV". Lo strumento raccoglie ogni chiave usata in tutti gli oggetti e trasforma ciascuna chiave in una colonna.
  4. Il risultato appare nell'anteprima dell'output come testo CSV.
  5. Fare clic su "Scarica CSV" per salvarlo come file .csv oppure su "Copia CSV" per copiare il testo.

Non ci sono limiti di caricamento imposti da un server, perché nessun dato lascia il browser. Un file molto grande può comunque rallentare la scheda del browser, poiché durante la conversione l'intero file viene mantenuto in memoria.

Regole di conversione da CSV a JSON

Il convertitore legge la prima riga del file come nomi delle colonne. Ogni riga successiva diventa un oggetto JSON, con i nomi delle colonne come chiavi. Una riga con più valori delle intestazioni disponibili riceve chiavi aggiuntive denominate in base alla posizione assoluta nella riga: con 3 intestazioni, il quarto valore avrà la chiave field_4, il quinto field_5 e così via; in questo modo nessun dato viene eliminato. Una riga con meno valori riceve stringhe vuote per le chiavi mancanti. Se due intestazioni hanno lo stesso nome, la seconda viene rinominata con un suffisso: a, a diventa le chiavi a e a_2.

Il convertitore segue le regole CSV definite nella RFC 4180, lo standard tecnico per questo formato. Una virgola all'interno di un campo viene trattata come valore di quel campo, non come separatore di colonne, solo se il campo è racchiuso tra virgolette doppie, ad esempio "Smith, John". Un'interruzione di riga all'interno delle virgolette viene mantenuta come parte del valore, anziché essere trattata come una nuova riga. Due virgolette doppie all'interno di un campo tra virgolette rappresentano un singolo carattere virgolette letterale.

Vengono riconosciute come separatori di colonne solo le virgole; lo strumento non rileva né supporta punti e virgola, tabulazioni o altri delimitatori.

Ogni valore viene controllato e convertito in un tipo:

  • Un valore scritto come numero semplice, ad esempio 42 o -3.5, diventa un numero JSON.
  • Il testo true o false, indipendentemente dall'uso di maiuscole o minuscole, diventa un valore booleano JSON.
  • Tutto il resto rimane una stringa JSON, comprese le celle vuote, che diventano stringhe vuote.
  • Un numero con uno zero iniziale, come 00512, rimane una stringa, perché lo zero iniziale ha spesso un significato, come nel caso di un codice postale o di un numero identificativo.
  • Un numero viene accettato solo se la sua riscrittura produce esattamente lo stesso testo. Gli interi lunghi superiori a 9,007,199,254,740,991, il più grande numero intero che un numero JavaScript rappresenta con esattezza, normalmente non superano questo controllo e rimangono stringhe, così non vengono perse cifre.
  • Un valore racchiuso tra virgolette nel file originale viene sempre mantenuto come stringa, anche se sembra un numero, poiché le virgolette vengono interpretate come un'indicazione dell'autore che il valore è testo.

Le righe vuote del file vengono ignorate e non producono oggetti vuoti.

Regole di conversione da JSON a CSV

Il convertitore esamina ogni oggetto dell'array e raccoglie l'insieme completo delle chiavi usate in tutti gli oggetti. Tali chiavi diventano le intestazioni delle colonne CSV, nell'ordine in cui compaiono per la prima volta. Se a un oggetto manca una chiave presente in un altro oggetto, la relativa cella viene lasciata vuota invece di generare un errore.

La conversione da JSON a CSV non appiattisce gli oggetti annidati in colonne separate. Un valore che è a sua volta un oggetto o un array viene riscritto come testo JSON all'interno di una singola cella: {"b": 1} diventa la cella {"b":1} e [1, 2] diventa la cella [1,2]. Non viene perso nulla, ma la parte annidata rimane in una colonna invece di essere suddivisa. È possibile appiattire manualmente il JSON annidato se ogni elemento deve avere una colonna propria.

Un valore null e una chiave presente in un oggetto ma assente in un altro producono entrambi una cella vuota.

Un valore di cella che contiene una virgola, una virgoletta o un'interruzione di riga viene racchiuso tra virgolette doppie nell'output, e ogni virgoletta al suo interno viene raddoppiata, in conformità alla regola di escape CSV descritta sopra.

Il JSON di input deve essere un array e ogni elemento deve essere un oggetto. Un numero, una stringa, null o un array annidato al posto di un oggetto produce l'errore "JSON deve essere un array di oggetti". Un array completamente privo di elementi produce l'errore "L'array JSON è vuoto. Aggiungi almeno un oggetto da convertire." Un file caricato senza alcun contenuto produce l'errore "Il file caricato è vuoto."

Esempio di calcolo

File CSV di partenza:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

La conversione in JSON produce:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

Si noti che "Bo, Jr." ha mantenuto la virgola perché il campo era racchiuso tra virgolette nel file di origine, mentre Age e Member sono diventati rispettivamente un numero e un valore booleano.

La conversione dello stesso JSON nuovamente in CSV, con una riga aggiunta in cui manca Age, produce:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

Il valore Age mancante diventa una cella vuota e la virgola in "Bo, Jr." fa sì che il campo venga nuovamente racchiuso tra virgolette nell'output.

Usi comuni

  • Analisi dei dati: trasformare un'esportazione CSV proveniente da un foglio di calcolo o da uno strumento di analisi in JSON, così da poterla elaborare con JavaScript, e poi convertire nuovamente i risultati in CSV per un report.
  • Test delle API: uno sviluppatore che realizza un'API in grado di accettare caricamenti CSV può convertire file di esempio in JSON per verificare che un parser produca gli oggetti previsti.
  • Migrazione dei dati: trasferire record da un sistema che esporta CSV a un sistema che accetta solo JSON, o viceversa.
  • Ispezione rapida: trasformare un file JSON in un CSV simile a una tabella per leggerlo più facilmente, o fare il contrario.

Le librerie di programmazione offrono la stessa conversione per attività più grandi o ripetute, come i moduli csv e json in Python, oppure pandas. Strumenti da riga di comando come csvkit e jq gestiscono la conversione e il filtraggio dal terminale. Queste opzioni sono adatte all'elaborazione in batch; questo strumento nel browser è indicato per un file occasionale, senza dover installare nulla.

Domande frequenti

Il file caricato viene inviato a un server? No. La conversione viene eseguita in JavaScript all'interno della scheda del browser. Il file viene letto dal dispositivo locale e non viene mai trasmesso.

Il convertitore supporta delimitatori diversi dalla virgola, come il punto e virgola o la tabulazione? No. La versione attuale legge solo valori separati da virgole. Un file che usa un delimitatore diverso deve prima essere convertito in formato separato da virgole, ad esempio sostituendo il delimitatore in un editor di testo.

Perché un numero come 00512 è rimasto una stringa di testo nell'output JSON? Gli zeri iniziali hanno solitamente un significato, come nel caso di un codice postale, quindi il convertitore mantiene quel valore come stringa invece di trasformarlo nel numero 512, eliminando così lo zero.

Che cosa succede se converto JSON che contiene oggetti annidati? L'oggetto annidato viene scritto come testo JSON in una singola cella, ad esempio {"b":1}. I dati restano intatti, ma non vengono suddivisi in colonne separate. Appiattire prima i dati annidati se ogni campo deve avere una colonna propria.

Che cosa succede se il mio JSON non è un array di oggetti? Lo strumento mostra un errore e non converte nulla. L'input deve essere un array JSON in cui ogni elemento è un oggetto, ad esempio [{"a":1},{"a":2}].

La prima riga di un file CSV deve essere sempre una riga di intestazione? Sì. Il convertitore tratta sempre la prima riga come nomi delle colonne. Un file privo di riga di intestazione avrà la prima riga di dati interpretata erroneamente come intestazione.

Riferimenti

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, ottobre 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., a cura di. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, dicembre 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON