Convertitore CSV ↔ JSON

Converti CSV in JSON o JSON in CSV direttamente nel browser.

Il modulo interattivo è disponibile quando JavaScript è attivo.

Come si usa

Incolla un CSV e premi «CSV → JSON» per ottenere un array di oggetti, uno per riga, con le chiavi prese dalla riga di intestazione. Incolla un array JSON di oggetti e premi «JSON → CSV» per riavere una tabella, con un’intestazione formata da tutte le chiavi presenti, nell’ordine in cui ciascuna compare per la prima volta. Il separatore può essere una virgola, un punto e virgola o una tabulazione, e vale in entrambe le direzioni. I file dei paesi che usano la virgola come separatore decimale sono spesso separati da punto e virgola: per questi scegli «Punto e virgola», altrimenti ogni riga viene letta come un unico campo o divisa in corrispondenza delle virgole decimali.

Un campo che contiene il separatore, una virgoletta o un a capo deve essere racchiuso tra virgolette doppie, e una virgoletta al suo interno va scritta due volte: "She said ""hi""" viene letto come She said "hi". Le righe vuote vengono saltate, quindi l’intestazione è la prima riga con del contenuto; le celle mancanti diventano stringhe vuote e le celle oltre l’ultima intestazione vengono scartate. Un nome di intestazione vuoto diventa column_ seguito dalla posizione della colonna, ad esempio column_3, e un nome ripetuto riceve il primo suffisso libero (name, name_2), così nessuna colonna ne sovrascrive un’altra. Una virgoletta mai chiusa viene segnalata come CSV non valido.

Ogni valore CSV diventa una stringa JSON, compresi i numeri e true o false: il CSV non ha tipi, quindi il convertitore non tira a indovinare. È questo che mantiene intatti gli zeri iniziali (007, CAP, numeri di telefono) e gli identificativi lunghi; converti in numeri i campi che ti servono nel tuo codice. Nella direzione opposta, i numeri e true o false vengono scritti così come sono, null diventa una cella vuota e un oggetto o un array annidato viene scritto come testo JSON all’interno della sua cella.

«JSON → CSV» accetta un array di oggetti oppure un singolo oggetto, che diventa una riga. Un array di valori semplici produce un’unica colonna chiamata value. Le righe sono separate da a capo, e una cella viene messa tra virgolette solo quando serve. Tutto viene eseguito nel tuo browser; non viene caricato nulla.

Esempio

L’intestazione diventa il nome delle proprietà JSON. Le due righe di dati diventano due oggetti.

  • name,email / Ana,[email protected][{"name": "Ana", "email": "[email protected]"}]
  • id / 007"id": "007": gli zeri iniziali restano, perché i valori vengono mantenuti come testo.
  • "Lisbon, Portugal" in un solo campoResta un unico valore; senza le virgolette verrebbe diviso in due colonne.
  • name;price / Pão;1,20 con Punto e virgola[{"name": "Pão", "price": "1,20"}]. Se invece scegli «Virgola», l’intestazione diventa un unico campo, name;price, e la riga viene letta come Pão;1: il 20 finisce in una cella in più e viene scartato.
  • [{"a":1,"tags":["x","y"]}] → CSVa,tags e poi 1,"[""x"",""y""]": l’array viene scritto come testo JSON e messo tra virgolette, perché contiene virgolette e una virgola.

Domande frequenti

Perché i miei identificativi hanno perso gli zeri iniziali?

Non è colpa di questo convertitore: conserva ogni valore CSV come testo, quindi 007 resta 007. Di solito gli zeri si perdono prima, quando il file viene aperto e salvato in un foglio di calcolo che legge 007 come il numero 7. Mantieni identificativi, CAP e numeri di telefono come testo dall’inizio alla fine.

Perché alcuni file CSV usano il punto e virgola?

Perché in gran parte d’Europa e del Sud America la virgola è il separatore decimale, quindi non può separare anche i campi. Quelle esportazioni usano invece il punto e virgola — lo stesso formato con un separatore diverso — ed è per questo che un file che si apre correttamente in un posto altrove sembra una sola colonna. Scegli «Punto e virgola» prima di convertirlo.

Perché nel JSON i numeri sono stringhe?

Perché il CSV non indica quali valori sono numeri. Leggere 007, 1e3 o un identificativo di 20 cifre come numero lo modificherebbe, quindi il convertitore lascia a te questa decisione.

Può convertire JSON annidato?

In parte. Ogni oggetto diventa una riga e ogni chiave di primo livello una colonna; gli oggetti e gli array annidati vengono scritti come testo JSON all’interno della loro cella, anziché essere distribuiti su colonne aggiuntive.

Che cosa succede a una virgoletta dentro un campo?

Viene raddoppiata e il campo viene racchiuso tra virgolette, come richiede il CSV: She said "hi" diventa "She said ""hi""".

Strumenti correlati