Jelas tidak.
CSV adalah format tabel yang memetakan dengan sangat baik ke kumpulan data atau data tabular lainnya. Tetapi tidak semua data berbentuk tabel! Secara umum, kami ingin membuat serial objek grafik . Ini bisa sulit dalam kasus-kasus berikut:
- referensi melingkar
- subgraph bersama (mis. dua objek yang sama-sama berisi objek yang sama dengan anggota)
- objek dari berbagai jenis yang akan diserialisasi ke dokumen yang sama
Kami selanjutnya ingin dapat menderailkan objek secara andal dari format penyimpanan kami.
XML
Terutama merupakan bahasa markup yang dapat dikembangkan . Ini dapat bertanduk sepatu untuk menyimpan struktur data umum juga. Dukungan bahasa untuk ID berarti bahwa grafik kompleks dapat dibuat, meskipun paling baik digunakan untuk pohon. Suatu dokumen dapat diuji kebenarannya terhadap suatu spesifikasi. Ada berbagai masalah dengan format ini yang dapat membuatnya tidak praktis, seperti verbositas ekstrim.
JSON
Terutama merupakan cara untuk menyimpan pohon objek sederhana . Tidak ada dukungan untuk grafik umum. JSON tidak memiliki konsep tipe di luar string primitif , integer , float , boolean , null dan array tipe koleksi dan objek .
YAML
Paling mudah dipahami sebagai perpanjangan JSON. Memiliki gagasan tentang alias yang memungkinkan grafik objek dengan kompleksitas sewenang-wenang dibuat. Memiliki konsep tag mirip metadata yang dapat digunakan untuk mengetik dengan benar.
CSV
Tidak memiliki apa pun, kecuali satu meja. Jika kita ingin menyimpan grafik objek, kita harus menggunakan skema seperti
#ID,Type,Field1,Field2,...,FieldN
1,String,foo
2,String,bar
3,Array<String>,1,2
Ada banyak dialek CSV yang tidak setuju pada pembatas, terminator garis, mengutip, karakter melarikan diri, dan banyak masalah lain yang membuatnya tidak cocok untuk data umum (biner). Semua ini membuatnya agak sulit untuk memproses data CSV.
Jadi pada dasarnya, hal-hal mudah sulit atau tidak mungkin dengan CSV saat menggunakannya sebagai format serialisasi umum.
Kritik ini tidak berlaku ketika menggunakannya untuk menyimpan data yang benar-benar tabular seperti lembar waktu atau serangkaian pengukuran. Di sini, CSV (sering dalam varian nilai yang dipisahkan tab) biasanya lebih ringkas dan lebih mudah digunakan daripada format data lainnya.