Certainement pas.
CSV est un format de tableau qui correspond très bien aux ensembles de données ou à d'autres données tabulaires. Mais toutes les données ne sont pas tabulaires! Plus généralement, nous voulons sérialiser les graphes d'objets . Cela peut être difficile dans les cas suivants:
- références circulaires
- sous-graphiques partagés (par exemple, deux objets qui contiennent tous deux le même objet qu'un membre)
- objets de différents types à sérialiser dans le même document
Nous voulons en outre pouvoir désérialiser de manière fiable les objets de notre format de stockage.
XML
Est principalement un langage de balisage extensible . Il peut également être conçu pour stocker des structures de données générales. La prise en charge linguistique des ID signifie que des graphiques complexes peuvent être créés, bien qu'il soit préférable de les utiliser pour les arbres. L'exactitude d'un document peut être testée par rapport à une spécification. Il existe divers problèmes avec ce format qui peuvent le rendre impraticable, tels que l'extrême verbosité.
JSON
Est principalement un moyen de stocker des arbres d' objets simples . Il n'y a pas de support pour les graphiques généraux. JSON n'a aucun concept de type au-delà de la chaîne primitive , de l' entier , du flottant , du booléen , du null et du tableau des types de collection et de l' objet .
YAML
Le plus facilement compris comme une extension de JSON. Possède une notion d' alias qui permet de créer des graphes d'objets de complexité arbitraire. A un concept de métadonnées comme des balises qui peuvent être utilisées pour une saisie correcte.
CSV
N'a rien, sauf une seule table. Si nous voulons stocker des graphiques d'objets, nous devons utiliser un schéma comme
#ID,Type,Field1,Field2,...,FieldN
1,String,foo
2,String,bar
3,Array<String>,1,2
Il existe de nombreux dialectes de CSV en désaccord sur les délimiteurs, les terminateurs de ligne, les guillemets, les caractères d'échappement et de nombreux autres problèmes qui le rendent inapproprié pour les données générales (binaires). Tout cela rend le traitement des données CSV assez difficile.
Donc, fondamentalement, les choses faciles sont difficiles ou impossibles avec CSV lorsque vous l'utilisez comme format de sérialisation général.
Cette critique ne s'applique pas lors de son utilisation pour stocker des données véritablement tabulaires comme des feuilles de temps ou une série de mesures. Ici, CSV (souvent dans la variante des valeurs séparées par des tabulations) est généralement plus compact et plus facile à utiliser que les autres formats de données.