Vai al contenuto

Conversione JSON ⇄ CSV

JSON ⇄ CSV

Appiattisce il JSON annidato in colonne o ricostruisce gli oggetti da una tabella, con i nomi di colonna a percorso puntato.

Trasforma un array di oggetti JSON in una tabella da foglio di calcolo: una riga per record, una colonna per chiave. La parte interessante è che cosa fa con i pezzi di JSON per cui una tabella non ha posto — oggetti annidati, array e record che non portano tutti le stesse chiavi — e ognuno di questi è una scelta che si fa in cima alla pagina.

🔒 Funziona interamente nel tuo browserjsoncsvconverttable
Oggetti annidati

user.address.city diventa una colonna a sé.

Valori di array

tags.0, tags.1 — la più larga, e non si perde niente.

Righe irregolari

I valori mancanti restano celle vuote.

JSON in ingresso

Trascina un file .json

Letto in questa scheda. Non viene caricato niente.

CSV in uscita

Separatore

Il file scaricato porta un BOM UTF-8, così Excel su Windows non legge una «à» come Windows-1252. Il pulsante di copia ti dà il testo senza BOM.

Come si usa

  1. Incollare un array di oggetti

    È la forma che vuole una tabella. Un oggetto singolo diventa una riga, e un oggetto che avvolge un array — la solita busta di API `{ "data": [...] }` — viene spacchettato automaticamente, con una nota che lo segnala.

  2. Decidere come si appiattisce l’annidamento

    I percorsi con i punti danno a `user.address.city` una colonna propria, che è quello che serve se il foglio verrà filtrato o messo in una tabella pivot. Solo il primo livello tiene `user.address` come una cella sola contenente JSON, che è più piccola e reversibile.

  3. Decidere che cosa succede agli array

    Una colonna ciascuno (`tags.0`, `tags.1`) non perde niente ma allarga il foglio fino all’array più lungo del documento. Unito mette `a; b; c` in una cella sola e si legge bene. Come JSON tiene le parentesi, così un passo successivo può rianalizzarlo.

  4. Controllare i tipi delle colonne nell’anteprima

    Ogni intestazione di colonna porta il tipo che i valori avevano davvero e, quando in alcuni record mancava, un conteggio presenti/totale. Una colonna di tipo `mixed` di solito è il punto in cui l’esportazione darà problemi più avanti.

  5. Scaricare il CSV, oppure copiare il TSV

    Lo scaricamento CSV ha davanti un BOM UTF-8, così Excel su Windows apre correttamente le lettere accentate. Se invece di aprire un file si incolla in un foglio, meglio passare a TSV e usare il pulsante di copia.

Domande frequenti

Perché in Excel le mie lettere accentate compaiono come è?

Perché il file è stato salvato senza il BOM: Excel su Windows continua a tirare a indovinare Windows-1252 per un CSV UTF-8 spoglio, e da una «è» esce «Ã¨», da una «à» esce «Ã ». Il pulsante di scaricamento qui ne aggiunge uno; il pulsante di copia di proposito no, perché un BOM incollato in un editor di testo compare come un carattere spurio.

Può convertire all’indietro, da CSV a JSON?

Non su questa pagina: va in una direzione sola. E il viaggio in generale perde qualcosa: i nomi di colonna con i punti si possono ricostruire in oggetti, ma un array unito non si distingue da una stringa che conteneva per caso un punto e virgola.

Che cosa succede ai record con chiavi diverse?

È l’impostazione «Righe irregolari». Tutte le chiavi le tiene tutte e lascia le celle vuote, Solo le chiavi comuni scarta ogni colonna che non è in tutti i record, e Le chiavi della prima riga tratta il primo record come schema e ignora in silenzio il resto. La prima è il valore predefinito sicuro; la seconda è quella che serve quando un importatore a valle rifiuta i file irregolari.

I numeri grandi sono al sicuro?

L’analisi è quella del browser, quindi i numeri oltre 2^53 sono già arrotondati prima che la tabella venga costruita — e un foglio di calcolo li arrotonderà di nuovo all’apertura. Gli id lunghi vanno tenuti nel JSON come stringhe, e anche allora Excel potrebbe riformattarli; un apostrofo iniziale nel foglio è la difesa abituale.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.