Convertire tra JSON, CSV e YAML
JSON, CSV e YAML possono spesso contenere gli stessi dati, ma non si corrispondono uno a uno. Questa guida spiega in cosa eccelle ciascun formato, quali dettagli possono cambiare durante una conversione e come controllare il risultato.
In cosa eccelle ciascun formato
JSON è il formato più diffuso per le API web e per le configurazioni lette dai programmi. Ha un insieme di tipi ridotto e chiaro: oggetti, array, stringhe, numeri, booleani e null. La sua sintassi rigorosa lo rende facile da analizzare per il software, ma non prevede commenti.
CSV è una tabella: una riga di dati per ogni riga di testo, un valore per colonna. Fogli di calcolo, database e strumenti di reportistica lo importano facilmente, ed è compatto per insiemi di dati grandi e piatti. Non ha un modo standard per descrivere tipi di dati o strutture annidate.
YAML è pensato per essere scritto e letto dalle persone. È molto usato per i file di configurazione perché ammette commenti, usa il rientro invece delle parentesi e può descrivere le stesse strutture di JSON. La sintassi flessibile comporta però che piccoli errori di rientro o di virgolette possano cambiarne il significato.
| Caratteristica | JSON | CSV | YAML |
|---|---|---|---|
| Oggetti e array annidati | Sì | No (tabella piatta) | Sì |
| Tipi di dati | Stringa, numero, booleano, null | Solo testo | Dedotti dal valore |
| Commenti | No | No | Sì |
| Uso tipico | API, dati delle app | Fogli di calcolo, importazioni | File di configurazione |
In CSV l’annidamento viene appiattito
Un file CSV ha solo righe e colonne, quindi i dati annidati devono essere rimodellati. Ci sono due approcci comuni. Il primo appiattisce la struttura in nomi di colonna come address.city e address.zip. Il secondo conserva la parte annidata come stringa JSON all’interno di una singola cella. Il Convertitore di dati di LeedyBox offre entrambe le opzioni.
Entrambi gli approcci hanno dei compromessi. Le colonne appiattite sono facili da leggere in un foglio di calcolo, ma array di lunghezza diversa producono molte colonne quasi vuote. Le stringhe JSON nelle celle conservano la struttura, ma sono più difficili da modificare a mano. Se in seguito riconverti in JSON, controlla che la struttura corrisponda a quella di partenza.
In CSV i tipi diventano testo
CSV memorizza ogni valore come testo. Il numero 42, la stringa "42" e il booleano true appaiono tutti uguali in una cella. Quando un file CSV viene riletto, un programma deve indovinare quali colonne contengono numeri o date, oppure riceverne l’indicazione. Il convertitore di LeedyBox legge i valori CSV come testo, quindi i numeri di un file CSV compaiono come stringhe in JSON, a meno che tu non li modifichi.
Le app per fogli di calcolo aggiungono le proprie ipotesi: possono rimuovere gli zeri iniziali da CAP o numeri di telefono, trasformare i numeri lunghi in notazione scientifica o interpretare i valori come date. Le celle che iniziano con =, +, - o @ possono essere trattate come formule; il convertitore offre un’impostazione facoltativa di protezione dalle formule di Excel per l’output CSV.
Commenti e tipi in YAML
JSON non prevede commenti, quindi la conversione da YAML a JSON li elimina. Riconvertire in YAML non li ripristina. Conserva il file YAML originale se i commenti sono importanti.
YAML deduce i tipi dai valori senza virgolette. Con le vecchie regole di YAML 1.1, usate da alcuni parser, parole come no, yes, on e off diventano booleani, quindi un codice paese come NO può trasformarsi in false. Valori come 2026-10-02 possono diventare oggetti data, e 1e3 o 010 possono essere letti come numeri. Il convertitore di LeedyBox legge YAML con lo schema core di YAML 1.2, che mantiene no e le date come testo, ma altri strumenti che leggono il tuo file possono comportarsi diversamente. Mettere tra virgolette i valori che devono restare testo è l’abitudine più sicura.
Numeri grandi in JavaScript
JavaScript memorizza i numeri come valori in virgola mobile a 64 bit. Gli interi maggiori di 9.007.199.254.740.991 (253 − 1) non possono essere rappresentati tutti esattamente, quindi un ID grande come 12345678901234567891 può essere arrotondato senza avviso durante l’analisi. Questo riguarda qualsiasi convertitore che funziona nel browser, compreso questo, che mostra un avviso quando rileva numeri di questo tipo. Per gli ID dei database e gli altri identificatori lunghi è più sicuro memorizzarli come stringhe.
Controllare il risultato
Una conversione che produce un output valido non è necessariamente corretta. Prima di usare il risultato:
- Confronta il numero di righe o di elementi con l’origine.
- Controlla a campione alcuni record, compresi quelli con valori vuoti, caratteri speciali, a capo o dati annidati.
- Controlla le colonne che nel sistema di destinazione devono essere numeri, booleani o date.
- Cerca numeri lunghi che potrebbero essere stati arrotondati.
- Convalida l’output con il programma che lo leggerà, usando prima una copia dei tuoi dati.
Lo strumento Confronto testi può aiutarti a confrontare un file originale con il risultato di una conversione di andata e ritorno.
Domande frequenti
Posso convertire JSON in CSV e poi di nuovo in JSON senza modifiche?
Solo per dati semplici e piatti, e anche in quel caso numeri e booleani di solito tornano come testo. Dati annidati e tipi dipendono dalle opzioni usate, quindi confronta il risultato con l’originale.
Perché il mio valore YAML è diventato true o false?
Alcuni parser YAML trattano parole senza virgolette come yes, no, on e off come booleani. Metti il valore tra virgolette per mantenerlo come testo.
I miei dati vengono caricati quando li converto?
Il Convertitore di dati di LeedyBox funziona nel browser, quindi i dati che incolli vengono elaborati sul tuo dispositivo.