Convertitore CSV ↔ JSON (conforme RFC 4180)
Incolla CSV o JSON. Il convertitore analizza CSV conforme a RFC 4180 (gestisce campi citati con virgole, virgolette di escape, valori su più righe). Per la conversione JSON in CSV, accetta sia array-di-oggetti (usa le chiavi come intestazioni) che array-di-array.
[
{
"name": "Alice",
"age": "30",
"city": "Tokyo"
},
{
"name": "Bob",
"age": "25",
"city": "Seoul"
},
{
"name": "Carol",
"age": "42",
"city": "Madrid"
}
]Come funziona
Perché RFC 4180 è importante
Il CSV sembra semplice ma ha casi limite: un campo contenente una virgola deve essere citato; un campo contenente una virgoletta deve fare l'escape raddoppiando la virgoletta; un campo può contenere newline se citato. I parser naivi che dividono sulle virgole si rompono sui dati del mondo reale. Questo convertitore implementa la grammatica RFC 4180 esattamente.
I parser naivi si rompono anche sulle esportazioni di Excel che usano punti e virgola (comune nelle impostazioni europee dove ',' è il separatore decimale) o tab (TSV). Il menu a tendina del delimitatore gestisce tutte e quattro le varianti comuni.
Forme JSON per l'output
Array di oggetti (predefinito con riga intestazione): ogni riga diventa {colonna: valore}. La forma JSON più comune, facile da consumare in qualsiasi linguaggio.
Array di array (riga intestazione disattivata): ogni riga diventa [v1, v2, ...]. Utile quando le colonne non sono nominate o vuoi una struttura posizionale.
Per la conversione JSON in CSV, il convertitore rileva quale forma hai. Oggetti: estrae le chiavi univoche in tutte le righe come intestazioni. Array: scrive le righe così come sono.
Problemi comuni
Locale Excel: in alcune installazioni europee di Excel, il delimitatore predefinito è ';' non ','. Se il tuo CSV sembra una colonna gigante quando importato, passa a ; nel menu del delimitatore.
BOM (Byte Order Mark): alcune esportazioni di Excel prefissano il file con U+FEFF. Lo lasciamo passare; se il tuo parser downstream fallisce, rimuovi i primi 3 byte.
Newline finale: un CSV che termina con '\n' aggiunge un'ultima riga vuota in alcuni parser; filtriamo automaticamente le righe vuote.
Numeri come stringhe: il CSV non ha tipi — '42' diventa la stringa "42" in JSON. Se hai bisogno di valori tipizzati, esegui un passo di post-elaborazione che coercisce le colonne numeriche note.
Domande frequenti
›Gestisce i campi citati con le virgole?
Sì — il quoting RFC 4180 è completamente supportato. "Rossi, Mario" viene analizzato come un singolo campo.
›Come vengono gestite le virgolette di escape?
Per RFC 4180, una '"' letterale all'interno di un campo citato è scritta come '""' (due virgolette). Il parser lo gestisce correttamente.
›I campi possono contenere newline?
Sì, quando citati. "riga 1\nriga 2" all'interno delle virgolette viene trattato come un campo con newline incorporata.
›Supporta BOM (UTF-8)?
Il BOM passa. Se il tuo consumer downstream non lo tollera, rimuovi i primi 3 byte (EF BB BF) dal CSV.
›E per i file enormi?
Il browser gestisce qualche MB senza problemi. Per CSV molto grandi (100 MB+), usa un parser in streaming come Papa Parse con un worker, o uno strumento CLI.
›I numeri vengono preservati come numeri?
CSV → JSON: tutti i valori diventano stringhe (il CSV non ha tipi). JSON → CSV: i numeri diventano celle CSV senza virgolette. Per ottenere JSON tipizzato, post-elabora le colonne che sai essere numeriche.
›Perché il mio JSON mostra stringhe vuote invece di null?
Il CSV rappresenta i valori mancanti come celle vuote. Li mappiamo a stringhe vuote. Per ottenere null in JSON, post-elabora l'output.
›I dati lasciano il mio browser?
No. La conversione viene eseguita localmente; nulla viene inviato a un server.
Strumenti correlati
Ultimo aggiornamento: