Convertitore da CSV a JSON
Incolla un CSV e ottieni un array JSON di oggetti con chiavi prese dalla riga di intestazione, oppure un array di array se non c'è intestazione. Cambia la direzione per riportare un array JSON di oggetti piatti in CSV. Le virgole tra virgolette, le virgolette doppie e le interruzioni di riga dentro i campi vengono lette correttamente, e la conversione avviene nel tuo browser. Gratuito, senza registrazione.
Direzione
Come usare il convertitore da CSV a JSON
- 1. Scegli una direzione. CSV → JSON è la predefinita; JSON → CSV si aspetta un array JSON di oggetti piatti.
- 2. Imposta le opzioni. Il delimitatore può essere rilevato automaticamente o fissato su virgola, punto e virgola o tabulazione; per JSON → CSV, il rilevamento automatico scrive virgole. Per CSV → JSON scegli anche un rientro di 2 spazi, 4 spazi o tabulazione e se la prima riga contiene le intestazioni.
- 3. Incolla e converti. Premi Converti. I problemi, come una virgoletta non chiusa, un JSON non valido o un array che non è fatto di oggetti, compaiono come messaggio al posto dell'output.
- 4. Copia o scarica. Copia Risultato copia l'output; il pulsante di download lo salva come
data.jsonodata.csv.
Come viene letto il CSV
Il CSV sembra semplice e non lo è: lo stesso file può usare virgole, punti e virgola o tabulazioni, e un campo può contenere proprio il carattere che separa i campi. La specifica più vicina è RFC 4180, che è informativa e non una norma. Dice che un campo contenente una virgola, una virgoletta doppia o un'interruzione di riga va racchiuso tra virgolette doppie, e che una virgoletta doppia dentro tale campo si scrive come due. Il convertitore segue queste regole e aggiunge alcune tolleranze:
- Campi tra virgolette. Un campo che inizia con una virgoletta doppia arriva fino alla virgoletta di chiusura, quindi può contenere delimitatori, interruzioni di riga e
""per una virgoletta letterale. Una virgoletta mai chiusa interrompe la conversione e segnala la riga in cui è iniziata. - Fine riga. LF, CRLF e un CR isolato chiudono tutti una riga, e le righe vuote vengono saltate.
- Rilevamento del delimitatore. In modalità automatica il convertitore guarda solo la prima riga e sceglie tra virgola, punto e virgola e tabulazione quello che compare più spesso; in caso di parità vince la virgola. Se la prima riga è insolita, per esempio una sola colonna o una riga di titolo, scegli tu il delimitatore. La RFC 4180 conosce solo le virgole; i punti e virgola sono comuni nei file esportati da fogli di calcolo impostati su una localizzazione europea.
- Tutto è testo. Il convertitore non indovina i tipi, quindi
2020diventa la stringa"2020", non un numero, e una cella vuota diventa"", non null. Se il tuo codice ha bisogno di numeri, convertili dopo.
Esempio svolto
Intestazione
name,note,year
Riga 1
"Smith, Jane","Said ""hello""",2020
Riga 2
Lee,short
Risultato
Due oggetti. Smith, Jane ha la nota Said "hello" e l'anno "2020"; Lee ha la nota short e l'anno "".
La virgola dentro Smith, Jane resta in un unico campo grazie alle virgolette, e le virgolette doppie si riducono a una. La riga di Lee ha una cella in meno, quindi l'anno mancante diventa una stringa vuota; una riga con celle in più perde le eccedenze, perché non c'è un'intestazione che le nomini. Deseleziona La prima riga contiene le intestazioni e lo stesso input diventa un array di array — [["name","note","year"],…] — con le righe corte lasciate corte.
I nomi di intestazione duplicati entrano in conflitto: con due colonne chiamate id, la seconda sovrascrive la prima, che va perduta, quindi rinomina prima una delle due.
Il percorso inverso: da JSON a CSV
La direzione inversa si aspetta un array di primo livello i cui elementi sono tutti oggetti. La riga di intestazione è l'unione di tutte le chiavi, nell'ordine della loro prima comparsa, quindi oggetti con chiavi diverse restano allineati, e un valore mancante viene lasciato vuoto. I numeri e i booleani vengono scritti così come sono, null diventa una cella vuota, e ogni array o oggetto annidato viene scritto nella sua cella come testo JSON tra virgolette. Se i dati sono annidati, appiattiscili prima. Le celle che contengono il delimitatore, una virgoletta o un'interruzione di riga vengono racchiuse tra virgolette, con le virgolette raddoppiate, e le righe sono unite da semplici interruzioni di riga LF.
Applicato a [{"name":"Smith, Jane","year":2020,"tags":["a","b"]},{"name":"Doe","note":"two\nlines","year":null}], il convertitore scrive l'intestazione name,year,tags,note, una prima riga con "Smith, Jane", 2020 e il testo tra virgolette ["a","b"], e una seconda riga per Doe in cui anno e tag sono vuoti e la nota è il testo su due righe tra virgolette.
Quale strumento ti serve?
| Vuoi | Usa |
|---|---|
| Convertire tra CSV e un array JSON | Questa pagina |
| Vedere il CSV come tabella da copiare in HTML | CSV in Tabella |
| Creare una tabella Markdown da un CSV | Generatore di Tabelle Markdown |
| Tenere solo alcune colonne di un CSV | Estrattore di Colonne |
| Controllare o riformattare il JSON stesso | Formattatore JSON |
| Convertire YAML o XML da e verso JSON | Convertitore da YAML a JSON, Convertitore da XML a JSON |
| Impaginare un CSV per un lavoro | Generatore di Tabelle LaTeX, Generatore di Tabelle APA |
Domande frequenti
- Come converto un CSV in JSON?
- Incolla il CSV nella casella, lascia selezionato CSV → JSON e premi Converti. Con La prima riga contiene le intestazioni selezionata ottieni un array di oggetti indicizzati dai nomi di intestazione; senza, ottieni un array di array. Copia il risultato o scaricalo come data.json.
- Il convertitore gestisce campi tra virgolette con virgole o interruzioni di riga?
- Sì. Un campo racchiuso tra virgolette doppie può contenere il delimitatore, interruzioni di riga e virgolette doppie raddoppiate, come descrive la RFC 4180. Una virgoletta di apertura senza una di chiusura interrompe la conversione e indica la riga in cui il campo è iniziato.
- Quali delimitatori sono supportati?
- Virgola, punto e virgola e tabulazione, rilevati automaticamente dalla prima riga oppure scelti a mano. I delimitatori a barra verticale e altri non sono supportati; un estrattore di colonne o una sostituzione con trova e sostituisci può trasformarli prima in virgole.
- Perché i miei numeri sono stringhe nel JSON?
- Il CSV non ha tipi e il convertitore non li indovina, quindi ogni valore esce come stringa e una cella vuota come stringa vuota. Così valori come
007o1e5restano esattamente come scritti; converti i tipi nel tuo codice dove servono numeri. - Come funziona la conversione da JSON a CSV?
- Serve un array JSON di oggetti. Ogni oggetto diventa una riga, le colonne sono tutte le chiavi che compaiono ovunque, e gli oggetti o gli array annidati vengono scritti nella cella come testo JSON. Il JSON non valido viene segnalato con un numero di riga quando il parser del browser ne fornisce la posizione.
- Perché il mio CSV si apre male in Excel dopo la conversione?
- Il file è UTF-8 semplice senza byte-order mark e usa il delimitatore che hai scelto, quindi Excel, in una regione che si aspetta i punti e virgola, può mettere tutto in una sola colonna, e i caratteri non inglesi possono richiedere che la procedura guidata di importazione sia impostata su UTF-8. Scegliere il punto e virgola come delimitatore spesso risolve il primo problema.
- I miei dati vengono caricati da qualche parte?
- No. Entrambe le direzioni vengono eseguite nel tuo browser, e il testo incollato non viene inviato a CitationEasy. Il download viene generato localmente.