Sicuramente no.
CSV è un formato di tabella che si adatta molto bene ai set di dati o ad altri dati tabulari. Ma non tutti i dati sono tabulari! Più in generale, vogliamo serializzare grafici oggetto . 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 diversi tipi da serializzare sullo stesso documento
Vogliamo inoltre essere in grado di de-serializzare in modo affidabile gli oggetti dal nostro formato di archiviazione.
XML
È principalmente una lingua markup estensibile. Può anche essere dotato di cornici per scarpe per archiviare strutture di dati generali. Il supporto linguistico per ID significa che è possibile creare grafici complessi, sebbene sia meglio utilizzare per gli alberi. Un documento può essere testato per la correttezza 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 oggetti semplici alberi . Non c'è supporto per i grafici generali. JSON non ha concetto di tipo oltre i primitivi string , intero , float , booleano , null e i tipi di raccolta array e oggetto .
YAML
Più facilmente inteso come estensione di JSON. Ha una nozione di alias che consente di creare grafici di oggetti con complessità arbitraria. Ha un concetto di metadati come tag che può essere usato per una corretta digitazione.
CSV
Non ha nulla, tranne un singolo tavolo. Se vogliamo archiviare i grafici degli oggetti, dovremmo usare uno schema come
#ID,Type,Field1,Field2,...,FieldN
1,String,foo
2,String,bar
3,Array<String>,1,2
Ci sono molti dialetti di CSV che non concordano su delimitatori, terminatori di riga, citazioni, 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.
In pratica, le cose semplici sono difficili o impossibili con CSV quando lo si utilizza come formato di serializzazione generale.
Questa critica non si applica quando la si utilizza per archiviare dati veramente tabulari come fogli di tempo o una serie di misurazioni. Qui, CSV (spesso nella variante dei valori separati da tabulazioni) è solitamente più compatto e più facile da usare rispetto agli altri formati di dati.