Certamente no.
CSV è un formato tabella che si associa molto bene a set di dati o altri dati tabulari. Ma non tutti i dati sono tabulari! Più in generale, vogliamo serializzare i grafici degli oggetti . Questo può essere difficile nei seguenti casi:
- riferimenti circolari
- sottografi condivisi (ad esempio due oggetti che contengono entrambi lo stesso oggetto di un membro)
- oggetti di diverso tipo da serializzare nello stesso documento
Vogliamo inoltre essere in grado di deserializzare in modo affidabile gli oggetti dal nostro formato di archiviazione.
XML
È principalmente un linguaggio di markup estensibile . Può essere anche dotato di una scarpa da clacson per memorizzare anche strutture di dati generali. Il supporto linguistico per gli ID consente di creare grafici complessi, sebbene sia meglio utilizzato per gli alberi. È possibile verificare la correttezza di un documento rispetto a una specifica. Ci sono vari problemi con questo formato che possono renderlo poco pratico, come l'estrema verbosità.
JSON
È principalmente un modo per memorizzare semplici alberi di oggetti . Non esiste supporto per i grafici generali. JSON non ha alcun concetto di tipo oltre alle stringhe primitive , integer , float , boolean , null e l' array e l' oggetto dei tipi di raccolta .
YAML
Più facilmente comprensibile come estensione di JSON. Ha una nozione di alias che consente di creare grafici a oggetti di complessità arbitraria. Ha un concetto di metadati come tag che possono essere utilizzati per una corretta digitazione.
CSV
Non ha nulla, tranne una singola tabella. Se vogliamo archiviare i grafici degli oggetti, dovremmo usare uno schema simile
#ID,Type,Field1,Field2,...,FieldN
1,String,foo
2,String,bar
3,Array<String>,1,2
Esistono molti dialetti di CSV che non sono d'accordo su delimitatori, terminatori di riga, virgolette, caratteri di escape e molti altri problemi che lo rendono inadatto per dati generali (binari). Tutto ciò rende piuttosto difficile l'elaborazione dei dati CSV.
Quindi, in sostanza, le cose semplici sono difficili o impossibili con CSV quando lo si utilizza come formato di serializzazione generale.
Questa critica non si applica quando lo si utilizza per archiviare dati veramente tabulari come fogli presenze o una serie di misurazioni. Qui, CSV (spesso nella variante dei valori separati da tabulazione) è generalmente più compatto e più facile da usare rispetto agli altri formati di dati.