Dati e fogli di calcolo · CSV Pulitore
CSV vs JSON: due formati di dati e le idee sulla struttura dietro di essi
· Sfondo
csv json formati di dati
CSV descrive una tabella; JSON descrive un albero. Questo post spiega da dove proviene JSON, perché trasporta tipi e annidamenti che CSV non possono e cosa significa la mancata corrispondenza ogni volta che i dati si spostano tra i due.
Lo stesso elenco clienti appare completamente diverso come CSV e come JSON: perché ogni formato codifica un'idea diversa di struttura
Una tabella cliente appare compatta in CSV perché ogni riga prende in prestito il significato da un'intestazione condivisa. JSON ripete i nomi delle proprietà in ogni oggetto e può nidificare un indirizzo o un elenco sotto un cliente. I due fascicoli esprimono quindi capacità strutturali diverse anche quando i loro fatti visibili si sovrappongono.
ToolAcre converte l'intersezione comune: un'intestazione piatta più righe di dati diventa una matrice di primo livello di oggetti piatti. Non trasforma la punteggiatura nelle intestazioni in rami né deduce matrici da colonne ripetute. Comprendere questo confine impedisce che un convertitore flat venga scambiato per un progettista di modelli di dati.
CSV come griglia: righe e colonne, significato posizionale e nient'altro oltre al testo
All'interno di questa implementazione, CSV è una tabella rettangolare di stringhe. La prima riga fornisce i nomi delle intestazioni e ciascuna cella successiva riceve significato dalla posizione della colonna. Le righe corte vengono imbottite e quelle lunghe avvisate, perché la posizione funziona in modo affidabile solo quando la larghezza della riga concorda con l'intestazione.
Non sono presenti numeri nativi, booleani, oggetti o celle nulle. Le virgolette proteggono la sintassi ma non assegnano il tipo. Una sequenza di cifre e la parola true rimangono valori testuali, il che mantiene stabili gli identificatori e chiede al consumatore di applicare uno schema laddove ne esiste effettivamente uno.
In ToolAcre, le celle CSV sono stringhe posizionate sotto una riga di intestazione
La cartella di lavoro richiede l'origine e la storia degli standard di JSON dei primi anni 2000, ma questo repository non è una fonte per tali date o pubblicazioni. Il comportamento verificabile è che il browser utilizza `JSON.parse` e `JSON.stringify`, accettando una serie di oggetti di primo livello per la conversione in una tabella.
Il valore non valido JSON riceve un errore di analisi specifico, una radice non array viene rifiutata e gli array contenenti primitive non sono supportati. Questi limiti di runtime contano più per un visitatore di una cronologia non citata. Il contesto storico dovrebbe provenire da standard primari esterni all’insieme delle fonti di questo compito.
La cronologia degli standard JSON è esterna alle prove del repository; la forma di runtime supportata è verificabile
Un oggetto JSON porta ciascuna chiave accanto al suo valore, mentre una cella CSV si basa sull'intestazione nello stesso indice. ToolAcre calcola le chiavi disambiguate una volta, quindi mappa ogni riga in base alla posizione. Le celle rappresentate mancanti diventano stringhe vuote quindi gli oggetti condividono un set di chiavi stabile.
Questa autodescrizione ha un costo in termini di dimensioni e ripetizione, ma rende comprensibile ciascun record JSON senza individuare separatamente un'intestazione. Al contrario, la modifica dell'ordine di una colonna CSV senza la sua intestazione ne distrugge il significato. La conversione deve mantenere nomi e posizioni accoppiati in tutta la tabella.
Alberi contro tabelle: nidificazione, array e chiavi opzionali e perché non hanno una posizione naturale in fila
I valori JSON possono contenere oggetti e matrici, mentre una cella CSV non può ramificarsi in modo nativo. Nella direzione opposta ToolAcre serializza un valore nidificato con `JSON.stringify` e inserisce il testo JSON in una cella. Non crea colonne address_city o righe di tag aggiuntive.
Le chiavi facoltative nei record JSON diventano l'unione di colonne in ordine di visualizzazione, con spazi vuoti dove a un oggetto manca una chiave. Questo è un appiattimento difendibile per oggetti piatti sparsi. Non fornisce una mappatura naturale per alberi arbitrari e il percorso lo dice invece di indovinare.
Esempio realizzato: un record con un indirizzo nidificato e un elenco di tag, mostrato in JSON e quindi forzato nelle colonne CSV
Una riga CSV piatta `id,name,city` seguita da `001,Ada,London` viene convertita in modo pulito in un oggetto con tre proprietà di stringa. Se JSON contiene invece `address: {city: "London"}` e `tags: ["math","code"]`, la conversione inversa scrive tali valori nidificati come stringhe JSON nelle colonne indirizzo e tag.
Il caricamento di CSV produce nuovamente stringhe contenenti la sintassi JSON, non valori nidificati ricostruiti. Un'applicazione successiva potrebbe analizzare tali celle secondo il proprio schema, ma ToolAcre no. Il confronto elaborato isola esattamente il punto in cui termina la struttura della tabella e inizia la struttura ad albero.
Esempio elaborato: i flat field vengono convertiti direttamente, mentre JSON nidificato viene conservato solo come testo di cella al contrario
JSON Linee, linguaggi di schema e parser di streaming sono esterni all'implementazione. L'output è un array rientrato e l'input del file viene letto in memoria prima della conversione. Non dedurre lo streaming record per record dalla presenza di un operatore di analisi.
Allo stesso modo, lo strumento non convalida le proprietà o gli intervalli numerici richiesti. Protegge le chiavi degli oggetti da intestazioni vuote e duplicate e segnala la forma delle righe, ma la correttezza semantica rimane una responsabilità del consumatore. La sintassi piatta può essere valida mentre i dati aziendali sono errati.
Scopri verso quale struttura ti stai muovendo: in che modo ToolAcre CSV Cleaner converte i dati tabulari piatti tra CSV e JSON
Scopri quale struttura si aspetta la destinazione. Per le esportazioni flat, ToolAcre fornisce un ponte trasparente: le intestazioni diventano chiavi univoche, le righe diventano oggetti e i valori rimangono stringhe. Per i modelli applicativi nidificati, definire una mappatura anziché forzare i rami attraverso convenzioni di denominazione delle colonne accidentali.
Visualizza l'anteprima della tabella, risolvi le righe irregolari e controlla il JSON generato prima del download. Il convertitore è più potente se utilizzato nella sua ristretta intersezione di formati. Non cancella la loro differenza concettuale e un flusso di lavoro affidabile non dovrebbe chiederlo.