Convertitore CSV ↔ JSON
Converti CSV in un array JSON di oggetti e viceversa — campi tra virgolette, delimitatori punto e virgola e tabulazione supportati, tutto nel browser.
1.121 visualizzazioni
Come Funziona Davvero la Conversione
CSV e JSON modellano i dati in modo diverso, e la direzione in cui converti determina quante congetture sono coinvolte. CSV → JSON è quasi meccanico: la riga di intestazione diventa l'insieme delle chiavi, e ogni riga successiva diventa un oggetto con quelle chiavi — nome,eta sopra Ada,36 diventa [{"nome":"Ada","eta":"36"}]. I campi tra virgolette contenenti virgole, le virgolette con escape ("") e le celle multilinea vengono analizzati secondo l'RFC 4180, e il delimitatore (virgola, punto e virgola o tabulazione) viene rilevato automaticamente dalla prima riga.
JSON → CSV è dove risiede la vera difficoltà. Il CSV è rigorosamente piatto — una riga, un record, un valore per cella — mentre JSON supporta naturalmente la nidificazione: un oggetto può contenere un altro oggetto o un array come valore di un campo, e non esiste un modo universalmente concordato per comprimere questo in un'unica cella CSV. Prendi {"nome":"Ada","indirizzo":{"citta":"Londra"}} — la colonna dovrebbe chiamarsi indirizzo.citta (notazione a punto, che appiattisce l'oggetto annidato in colonne aggiuntive), oppure l'intero valore indirizzo dovrebbe essere incorporato come stringa JSON grezza in una cella, come {"citta":"Londra"}? Entrambi gli approcci sono usati nella pratica e nessuno dei due è "lo" standard; questo strumento adotta la notazione a punto per un livello di nidificazione e ripiega sull'incorporare testo JSON per array e strutture più profonde, perché questo mantiene gli oggetti semplici genuinamente adatti al foglio di calcolo senza perdere silenziosamente dati su quelli complessi.
Vale la pena interiorizzare questo concetto: non è una lacuna dello strumento, è una lacuna del modello di dati stesso. Qualsiasi convertitore CSV↔JSON che provi — questo incluso — deve fare una scelta editoriale sull'appiattimento, perché i due formati non sono mai stati progettati per essere perfettamente intercambiabili. Il CSV è stato costruito per registri tabellari; JSON è stato costruito per documenti dalla forma arbitraria. Saperlo in anticipo spiega perché far transitare un file JSON complesso attraverso il CSV e ritorno raramente riproduce esattamente la struttura originale, e perché mantenere i dati profondamente annidati in forma JSON è spesso semplicemente la scelta giusta piuttosto che un limite da aggirare.
Cosa Vale la Pena Sapere
- Il CSV non ha tipi di dati. Ogni valore transita come testo a meno che tu non attivi la conversione numerica, che trasforma le stringhe dall'aspetto numerico in veri numeri JSON (lasciando invece come stringhe gli ID con zeri iniziali come "007", dato che convertirli li corromperebbe).
- Il delimitatore viene rilevato automaticamente, non presunto. Excel esporta con punto e virgola in molte impostazioni regionali europee e turche, perché lì la virgola è già il separatore decimale — l'analizzatore controlla la riga di intestazione per scegliere quello corretto.
- JSON → CSV unisce tutte le chiavi tra gli oggetti. Se alcuni record hanno un campo che altri non hanno, l'intestazione include ogni chiave vista ovunque nell'array, e quelle mancanti vengono lasciate vuote in quella riga.
- Niente lascia il tuo browser. Analisi e conversione avvengono entrambe localmente in JavaScript, quindi incollare un'esportazione sensibile non la invia da nessuna parte.
- L'ordine delle righe è preservato in entrambe le direzioni. La prima riga di dati resta prima dopo la conversione in entrambi i sensi, il che conta quando un foglio di calcolo o uno script a valle si basa sull'ordine posizionale invece che su una chiave di ordinamento esplicita.
Domande Frequenti
Perché tutti i miei numeri diventano testo?
Il CSV non ha tipi — è tutto testo. Attiva l'opzione "converti numeri" per trasformare i valori dall'aspetto numerico in numeri JSON (gli ID con zeri iniziali restano testo, dato che convertirli li corromperebbe silenziosamente).
Il mio CSV di Excel usa il punto e virgola — funzionerà?
Sì — il delimitatore viene rilevato dalla prima riga. Le impostazioni regionali turche e molte europee di Excel esportano con il punto e virgola perché la virgola è già il separatore decimale.
E il JSON annidato?
Il CSV è piatto: gli oggetti/array annidati vengono serializzati come stringhe JSON dentro la cella, oppure appiattiti in colonne con notazione a punto per gli oggetti poco profondi. Per dati profondamente annidati, appiattiscili prima oppure mantienili come JSON invece di forzarli in un foglio di calcolo.
Perché lo strumento non sceglie semplicemente uno standard per appiattire il JSON annidato?
Perché non ne esiste uno — ecosistemi diversi sono genuinamente in disaccordo. Le colonne con notazione a punto (indirizzo.citta) mantengono leggibile in tabella l'annidamento semplice ma moltiplicano rapidamente le colonne; incorporare il valore annidato come stringa JSON grezza mantiene una colonna per campo ma richiede di riparsare quella cella in seguito. Questo strumento usa la notazione a punto per gli oggetti poco profondi e ripiega sul testo JSON incorporato per array e nidificazioni più profonde.
Cosa succede a un array dentro un oggetto durante JSON → CSV?
Viene serializzato come testo JSON dentro un'unica cella invece di essere distribuito su più colonne — gli array possono avere qualsiasi lunghezza, quindi non c'è un numero fisso di colonne da assegnare loro. Copia il contenuto di quella cella e analizzalo separatamente se ti servono i singoli elementi.
Strumenti Simili
Segnala un Problema
Convertitore CSV ↔ JSON
Commenti
Ancora nessun commento — scrivi il primo!