Che cosa fa questo strumento
Un array di oggetti diventa righe; le chiavi diventano l’intestazione.
[
{ "nome": "Ada", "nascita": 1815 },
{ "nome": "Alan", "nascita": 1912 }
]
nome,nascita
Ada,1815
Alan,1912
La radice dev’essere un array di oggetti: una tabella è un elenco di record, e un oggetto da solo non ha righe. Avvolgilo in [ ] se intendevi una riga.
Gli identificatori lunghi conservano le cifre
[{ "id": 12345678901234567890 }]
esce con tutte e venti le cifre. I convertitori che analizzano prima il JSON verso un valore JavaScript arrotondano oltre una quindicina — in silenzio, e verso un numero che non corrisponde più alla riga da cui proviene.
Tre ambiguità, dette
Null e stringa vuota sono la stessa cella. null e "" non producono nulla tra i separatori, e nessun lettore li distinguerà poi. Se la differenza conta, CSV è la destinazione sbagliata.
Un valore annidato diventa JSON nella cella. Una cella porta un valore; la tua chiave porta un sottoalbero. Spargerlo su colonne padre.figlio inventate imporrebbe una convenzione che il tuo consumatore non ha mai approvato.
I record irregolari danno un’unione. L’intestazione è ogni chiave incontrata, nell’ordine di prima apparizione; a chi ne manca una tocca una cella vuota. Scartare la colonna, o la riga, perderebbe dati per amore di un rettangolo ordinato.
L’opzione Excel
Excel non legge in modo affidabile un CSV in UTF-8 semplice: indovina la codifica dai byte e quasi sempre sceglie la vecchia code page del tuo sistema — è così che café diventa café.
L’opzione Excel scrive due cose che Excel capisce: un marcatore di ordine dei byte e una riga sep=, iniziale che nomina il separatore. Nessuna delle due è CSV standard — sep= è anzi un’estensione Microsoft che altri lettori mostreranno come prima riga di dati — ed è per questo che è un’opzione da attivare, non il comportamento predefinito.
Privato per progettazione
Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.