Convertitore da JSON a CSV
Incolla un array JSON di oggetti qui sotto. Le chiavi vengono unite tra tutti gli oggetti per la riga di intestazione, le chiavi mancanti diventano celle vuote, e i campi di output vengono messi tra virgolette solo quando ne hanno davvero bisogno. Nulla di ciò che incolli lascia il tuo browser.
Virgolette solo quando servono davvero
Scrivere CSV correttamente è l'immagine speculare dell'analizzarlo:
un campo ha bisogno di essere racchiuso tra virgolette doppie
solo se il suo testo verrebbe altrimenti letto male — perché
contiene il delimitatore, una virgoletta doppia o un a capo.
Questo strumento controlla ogni campo individualmente e mette
tra virgolette esattamente quelli che ne hanno bisogno,
raddoppiando ogni " letterale dentro un campo tra
virgolette (" diventa "") così non può
mai essere scambiata per la virgoletta di chiusura. Saltare le
virgolette non necessarie mantiene l'output leggibile; non
saltare mai una virgoletta necessaria lo mantiene
corretto.
Inoltre, questa pagina usa il punto e virgola come delimitatore predefinito invece della virgola, perché è così che Excel in italiano si aspetta il CSV in fase di importazione: la virgola è già impegnata come separatore decimale in questo locale, quindi un CSV delimitato da virgole viene spesso importato male, con l'intero file finito in un'unica colonna. Puoi cambiare dal selettore se ti serve virgola o tabulazione.
Esempio pratico
Input:
[
{"nome": "Smith, John", "nota": "ha \"virgolette\""},
{"nome": "Lee"}
]
Il nome del primo oggetto contiene una virgola e la
sua nota contiene virgolette doppie letterali; il
secondo oggetto non ha alcuna chiave nota. Questo
strumento produce (con punto e virgola come delimitatore):
nome;nota "Smith, John";"ha ""virgolette""" Lee;
— nome e nota hanno dovuto essere
messi tra virgolette nella prima riga a causa della virgola e
delle virgolette incorporate, il doppio "" conserva
i segni di virgolette letterali, e la nota mancante
di Lee è semplicemente una cella vuota invece di un
crash o di una riga persa. Incolla questo output esatto nel convertitore da CSV a JSON
(con lo stesso delimitatore selezionato) e riottieni i due
oggetti originali.
Domande frequenti
Cosa succede se i miei oggetti non hanno tutti le stesse chiavi?
È previsto e gestito: la riga di intestazione è l'UNIONE di ogni chiave che compare in qualsiasi punto dell'array, nell'ordine in cui viene vista per la prima volta. Qualsiasi oggetto a cui manca una certa chiave riceve semplicemente una cella vuota in quella colonna invece di causare un errore — nulla va in crash, e nessun dato degli altri oggetti viene perso.
Come vengono gestiti oggetti e array annidati?
Gli oggetti annidati vengono appiattiti in colonne con notazione a punto — {"user":{"name":"Ada"}} diventa una colonna chiamata letteralmente user.name. Gli array vengono mantenuti come una singola cella contenente il loro testo JSON (es. ["dev","ops"]), dato che una lista non ha una corrispondenza ovvia colonna-per-elemento. Questo mantiene ogni valore visibile nel CSV invece di scartare silenziosamente qualcosa.
Perché alcuni dei miei campi di output sono tra virgolette e altri no?
Un campo viene racchiuso tra virgolette doppie solo quando ne ha davvero bisogno: quando il suo testo contiene il delimitatore selezionato, una virgoletta doppia o un a capo. Ogni virgoletta doppia letterale dentro il campo viene raddoppiata (" diventa "") così non può essere confusa con la virgoletta di chiusura. Valori semplici come Boston sono lasciati senza virgolette — questo mantiene l'output leggibile pur restando inequivocabile per qualsiasi cosa lo rianalizzi.
E il delimitatore? Perché punto e virgola invece di virgola?
Perché le versioni italiane di Excel esportano e importano CSV con punto e virgola come predefinito: la virgola è già impegnata come separatore decimale in questo locale ("3,14" è pi greco, non due colonne), quindi un CSV delimitato da virgole sarebbe ambiguo o verrebbe importato male in un'unica colonna. Usa il selettore sopra il campo di input se ti serve virgola o tabulazione — il risultato resta comunque un CSV correttamente tra virgolette in ogni caso.
Questo torna esattamente allo stesso JSON?
Sì — incolla il CSV prodotto da questo strumento nel convertitore da CSV a JSON con lo stesso delimitatore selezionato, e riottieni i dati originali (i percorsi annidati diventano chiavi puntate invece di essere ricostruiti come oggetti annidati, dato che quell'inversione è ambigua in generale, ma nessun valore viene perso). Testiamo esattamente questo round-trip a ogni rilascio.