Vai al contenuto
CSV / JSON

Convertitore CSV / TSV / JSON

Conversione bidirezionale fra CSV (TSV o pipe-separated) e JSON. Parser RFC 4180 compliant con gestione corretta dell'escape a doppia quote, auto-detect del delimitatore, type casting opzionale (int, float, bool, null) per il JSON output. Pensato per chi importa o esporta dataset fra Excel, Google Sheets, database e API, con tutta la conversione locale al browser.

Come usare il convertitore

  1. 1

    Incolla il CSV o JSON

    Per CSV: una riga per record, prima riga opzionale come header. Per JSON: array di oggetti (ogni oggetto = una riga). Il tool gestisce CSV con quote (campi con virgole o newline dentro), TSV (tab-separated), pipe-separated.

  2. 2

    Scegli direzione e delimitatore

    CSV->JSON o JSON->CSV. Delimitatore: auto-detect funziona con virgola, punto e virgola (Excel italiano), tab, pipe. Override manuale se l'auto sbaglia.

  3. 3

    Configura headers + cast

    Headers attivo: prima riga del CSV diventa keys del JSON object. Disattivo: output è array di array. Type cast: stringhe "42" diventano number 42, "true"/"false" diventano bool, vuoti diventano null.

  4. 4

    Esporta

    Copia negli appunti o scarica file (.csv o.json). Funziona con tab in Excel via paste, oppure import diretto in Postgres COPY/MySQL LOAD DATA INFILE per il CSV output.

Perché un altro convertitore CSV/JSON

Tre fattori distintivi.

RFC 4180 corretto. Molti convertitori online sbagliano il parsing di CSV con virgolette: "a,b",c,"d" deve produrre 3 campi (a,b | c | d), non 4. Anche il quote escaping interno ("a""b" = letterale a"b) è frequentemente bacato. Il parser qui implementa fedelmente RFC 4180: stato-machine carattere per carattere, gestisce quote/escape correttamente.

Auto-detect delimiter. CSV è convenzione, non standard rigido. Excel italiano salva con punto e virgola (per non confondere con la virgola decimale). Database export usano spesso tab (TSV). Il tool conta i delimitatori candidati (,;\t|) nei primi 4KB e sceglie il più frequente. Override manuale se serve.

Type casting opzionale. CSV è string-only by design. JSON ha tipi nativi. Il cast "42" -> 42 (number), "true" -> true (boolean), vuoto -> null è una scorciatoia comune. Disattivabile per i CSV dove gli zeri leading sono significativi (codici fiscali, IBAN, prefissi telefonici).

Glossario

Termini tecnici usati in questa pagina, spiegati in due righe.

RFC 4180 #
Standard de facto per CSV (2005). Definisce: linea = record, virgola = field separator, doppia quote = field delimiter (per campi con virgole/newline), doppia quote escapata come "" letteralmente.
TSV #
Tab-Separated Values. Variant di CSV con tab come delimitatore. Comune per export di database (PostgreSQL COPY default), Excel (clipboard paste) e Hadoop.
Type casting #
Conversione automatica di stringhe a tipi nativi (int, float, bool, null) durante CSV -> JSON. Heuristic: regex matching, niente parsing avanzato (date, currency).
Header row #
Prima riga del CSV con nomi di colonna. In JSON output diventa keys degli oggetti. Senza header, output è array di array (positional).

Domande frequenti

Excel italiano salva CSV con punto e virgola, è supportato?
Si, sia in auto-detect che con override manuale. Excel italiano usa ; come delimitatore per non confondere con la virgola decimale (1.234,56). Il tool riconosce automaticamente il pattern e produce JSON corretto.
Type casting trasforma '0123' in 123 perdendo lo zero leading?
Si, quando attivo. Se i tuoi CSV hanno codici con zeri leading (CAP italiani '00100', codici fiscali con zeri davanti), DISATTIVA type cast. Il tool tratta solo stringhe matchate da regex strict (^-?\d+$): '0123' matcha e diventa 123. Per evitare: cast off.
Il convertitore JSON->CSV gestisce nested object?
Parzialmente. Object al top level = riga. Nested object dentro un campo viene serializzato come stringa JSON (es. {"meta":{"a":1}} -> riga con campo 'metà con valore '{"a":1}'). Per nested object con re-flattening, conviene preprocessing in Python/jq.
Funziona offline?
Sì. Parser e serializer girano direttamente nel browser; una volta caricata la pagina, il tool continua a funzionare anche senza connessione.
C'e' un limite di righe?
Niente di hardcoded. Il limite è la memoria del tab. CSV con 100K righe e 20 colonne (~10MB testo) gira in pochi secondi su CPU moderna. Per dataset più grandi: jq + csvkit CLI sono streaming e gestiscono GB.
I campi numerici con separatore decimale italiano (1.234,56)?
Type cast non li riconosce: matcha solo formato US (1234.56). I valori restano stringhe in JSON. Per supporto numbers EU, preprocessing necessario (sed/awk per swap virgola e punto).
Posso importare CSV con BOM (Byte Order Mark)?
Si. Il browser rimuove il BOM UTF-8 in input. Per output CSV in Excel-friendly, alcuni preferiscono CSV con BOM (\ufeff all'inizio): per ora il tool produce CSV senza BOM, conviene aggiungerlo manualmente o convertire encoding via iconv.
Differenza fra delimiter ; e,?
Convenzione regionale. US/UK: virgola. Germania/Italia/Francia/Spagna: punto e virgola (per non confondere col decimale). Excel sceglie automaticamente in base al locale del sistema. Per max compatibility cross-locale, conviene usare TSV (tab) o pipe (|).

Chi sviluppa questi strumenti?

Maurizio Fonte, consulente IT senior con oltre 20 anni di esperienza in PHP, Laravel, infrastrutture Linux, cybersecurity e integrazione AI/LLM in azienda. Backend di produzione, modernizzazione di codice legacy, audit di sicurezza, agenti AI e MCP server custom: il lavoro che sta dietro a questi strumenti.

Conosci Maurizio Fonte