Skip to content

Convertitore da CSV a JSON (e viceversa)

CSV ↔ JSON con vera analisi RFC 4180, interamente nel tuo browser.

Buğra SözeriSviluppatore
Updated · Published

Il CSV sembra banale — valori separati da virgole — ed è esattamente per questo che tanti convertitori lo sbagliano. Il CSV del mondo reale ha campi tra virgolette che contengono virgole, virgolette con escape scritte come due virgolette doppie, ritorni a capo incorporati dentro una singola cella e uno zoo di dialetti di delimitatori: Excel nella maggior parte delle localizzazioni europee — Italia compresa — esporta con il punto e virgola perché la virgola è il separatore decimale. Il parser qui sotto segue la RFC 4180, la cosa più vicina a uno standard che il CSV possieda, e rileva automaticamente i delimitatori virgola, punto e virgola o tabulazione. Tutto viene eseguito localmente nel tuo browser; i tuoi dati non toccano mai un server.

[ { "name": "Doe, Jane", "city": "Berlin", "zip": "10115" }, { "name": "Bob", "city": "Princeton", "zip": "08540" } ]

How to use

  1. Scegli una direzione

    CSV → JSON oppure JSON → CSV. Rilasciare un file .csv o .json sull'input cambia automaticamente la direzione.

  2. Incolla o rilascia i tuoi dati

    Incolla il testo direttamente, oppure trascina un file .csv o .json (fino a 8 MB) sulla casella di input. L'output convertito appare mentre digiti.

  3. Regola le opzioni

    Lascia il delimitatore su rilevamento automatico, a meno che non sbagli a indovinare. Deseleziona 'La prima riga è l'intestazione' per dati senza intestazione, e attiva 'Inferisci i tipi' solo se i tuoi dati non contengono zeri iniziali o lunghi ID numerici.

  4. Copia o scarica

    Usa il pulsante di copia per incollaggi rapidi, oppure scarica il risultato come data.json o data.csv.

Frequently asked questions

Posso caricare un file invece di incollare?
Sì — trascina un file .csv o .json sulla casella di input. Viene letto localmente con il FileReader del browser (fino a 8 MB) e non viene mai caricato da nessuna parte. Rilasciare un file .json fa anche passare lo strumento in modalità JSON → CSV.
Perché i numeri restano stringhe per impostazione predefinita?
Perché la coercizione silenziosa corrompe i dati reali. Un codice postale come 08540 perde il suo zero iniziale nel momento in cui diventa un numero, e un ID a 16 cifre come il numero di una carta o di un conto supera l'intervallo degli interi sicuri di JavaScript (2^53) e viene arrotondato. Le stringhe sono senza perdite; attiva 'Inferisci i tipi' solo quando sai che le tue colonne sono davvero numeriche o booleane.
Il mio CSV usa i punti e virgola — funzionerà?
Sì. Excel in italiano, tedesco, francese e nella maggior parte delle altre localizzazioni europee esporta file separati da punto e virgola perché lì la virgola è il separatore decimale. Il rilevatore automatico valuta virgola, punto e virgola e tabulazione sulla prima riga di dati e sceglie il vincitore; puoi anche forzare un delimitatore dal menu a tendina.
E i ritorni a capo dentro una cella?
Gestiti correttamente. Secondo la RFC 4180, un campo racchiuso tra virgolette doppie può contenere interruzioni di riga, virgole e virgolette (con escape tramite raddoppio). Il parser tiene traccia dello stato delle virgolette attraverso le righe invece di dividere ingenuamente sui ritorni a capo, che è il punto in cui si rompe la maggior parte dei convertitori improvvisati.
Come viene convertito in CSV il JSON annidato?
Il CSV è piatto, quindi oggetti e array annidati non possono essere rappresentati nativamente. Questo strumento serializza qualsiasi valore annidato con JSON.stringify nella sua cella — una limitazione onesta piuttosto che un tentativo di appiattimento con perdite. Se ti serve un appiattimento delle colonne con percorsi puntati, ristruttura prima il JSON.
Cosa succede con le intestazioni di colonna duplicate?
I nomi di intestazione duplicati vengono resi univoci aggiungendo un indice come suffisso: una seconda colonna 'name' diventa 'name_2', una terza 'name_3', e così via. Senza questo accorgimento, le colonne successive sovrascriverebbero silenziosamente quelle precedenti negli oggetti risultanti.

About

La RFC 4180 nella pratica contro i dialetti in circolazione

La RFC 4180 è un memo informativo del 2005, non uno standard rigido, ma ha codificato il nucleo sensato: campi separati da virgole, record da CRLF, campi contenenti virgole, virgolette o interruzioni di riga racchiusi tra virgolette doppie, e virgolette letterali con escape tramite raddoppio. Il mondo reale è in disaccordo su quasi tutto il resto — delimitatori punto e virgola e tabulazione, terminatori di riga LF nudi, ritorni a capo finali opzionali, byte-order mark provenienti da Excel e file senza intestazione. Un convertitore robusto accetta i dialetti in input (questo rileva automaticamente i delimitatori e accetta sia CRLF sia LF) mentre emette output strettamente conforme.

Quando il CSV batte il JSON, e viceversa

Il CSV vince per i dati piatti e tabellari: è più piccolo, si elabora in streaming riga per riga, si apre direttamente in Excel e Google Fogli e si carica in ogni database e libreria di dataframe mai scritta. Il JSON vince nel momento in cui i tuoi dati hanno una struttura — annidamento, array di lunghezza disuguale, valori tipizzati o campi opzionali. È inoltre autodescrittivo e non ambiguo riguardo a stringhe e numeri, cosa che il CSV per sua natura non è. Una regola utile: se i dati sono una tabella, usa il CSV; se sono un albero, usa il JSON; se oggi sono una tabella ma potrebbero acquisire struttura, usa il JSON e accetta il costo in dimensioni.

Sources & references

Authoritative references behind the math, constants, and tables on this page. Verified by Buğra Sözeri on the dates shown and re-checked at every deploy.

Strumenti correlati