Na pewno nie.
CSV to format tabeli, który bardzo dobrze odwzorowuje na zestawy danych lub inne dane tabelaryczne. Ale nie wszystkie dane są tabelaryczne! Ogólnie rzecz biorąc, chcemy serializować wykresy obiektów . Może to być trudne w następujących przypadkach:
- okólniki
- współdzielone podgrafy (np. dwa obiekty, które zawierają ten sam obiekt jako element członkowski)
- obiekty różnych typów, które mają być serializowane do tego samego dokumentu
Chcemy ponadto móc niezawodnie usuwać z serializacji obiekty z naszego formatu pamięci.
XML
Jest przede wszystkim rozszerzalnym językiem znaczników . Można go ustawić tak, by przechowywał również ogólne struktury danych. Obsługa języka dla identyfikatorów oznacza, że można tworzyć złożone wykresy, chociaż najlepiej nadają się do drzew. Dokument można przetestować pod kątem poprawności względem specyfikacji. Istnieją różne problemy z tym formatem, które mogą sprawić, że będzie on niepraktyczny, na przykład ekstremalna gadatliwość.
JSON
Jest przede wszystkim sposobem przechowywania prostych drzew obiektów . Nie ma obsługi ogólnych wykresów. JSON ma koncepcji typu poza prymitywów ciąg , liczba całkowita , pływak , Boolean , wartość null i typów kolekcji tablicy i obiektu .
YAML
Najłatwiej rozumiane jako rozszerzenie JSON. Ma pojęcie aliasów, które umożliwiają tworzenie grafów obiektowych o dowolnej złożoności. Ma koncepcję metadanych, takich jak tagi , których można używać do poprawnego pisania.
CSV
Nie ma nic oprócz jednego stołu. Jeśli chcemy przechowywać wykresy obiektowe, musielibyśmy użyć schematu podobnego do schematu
#ID,Type,Field1,Field2,...,FieldN
1,String,foo
2,String,bar
3,Array<String>,1,2
Istnieje wiele dialektów CSV, które nie zgadzają się co do ograniczników, terminatorów linii, cytowania, znaków zmiany znaczenia i wielu innych kwestii, które sprawiają, że nie nadaje się do ogólnych (binarnych) danych. Wszystko to utrudnia przetwarzanie danych CSV.
Zasadniczo, łatwe korzystanie z CSV jest trudne lub niemożliwe, gdy jest używany jako ogólny format serializacji.
Ta krytyka nie ma zastosowania, gdy używa się jej do przechowywania prawdziwie tabelarycznych danych, takich jak arkusze czasu lub serie pomiarów. Tutaj CSV (często w wariancie wartości rozdzielanych tabulatorami) jest zwykle bardziej zwarty i łatwiejszy w użyciu niż inne formaty danych.