Kesinlikle hayır.
CSV, veri kümeleri veya diğer tablo verilerine çok iyi eşlenen bir tablo biçimidir. Ancak tüm veriler tablo halinde değildir! Genellikle, nesne grafiklerini serileştirmek istiyoruz . Bu, aşağıdaki durumlarda zor olabilir:
- dairesel referanslar
- paylaşılan alt yazılar (örneğin, her ikisi de üye ile aynı nesneyi içeren iki nesne)
- aynı belgeye serileştirilecek farklı türdeki nesneler
Ayrıca, nesneleri depolama biçimimizden güvenilir bir şekilde serileştirmek de istiyoruz.
XML
Öncelikle genişletilebilir bir biçimlendirme dilidir. Genel veri yapılarını da depolamak için ayakkabı boynuzlu olabilir. Kimlikler için dil desteği, en iyi ağaçlar için kullanılmasına rağmen karmaşık grafiklerin oluşturulabileceği anlamına gelir. Bir dokümantasyon şartnameye göre doğruluk için test edilebilir. Bu formatta, aşırı ayrıntı gibi pratik yapamayacağınız çeşitli problemler var.
JSON
Öncelikle basit nesne ağaçları saklamak için bir yoldur . Genel grafikler için destek yoktur. JSON, ilkel string , integer , float , boolean , null ve collection array dizisi ve nesnesinin ötesinde bir tür kavramına sahip değildir .
YAML
JSON'un bir uzantısı olarak en kolay anlaşılan Rasgele karmaşıklıktaki nesne grafiklerinin oluşturulmasına izin veren bir takma ad kavramı vardır . Doğru yazma için kullanılabilecek bir meta veri benzeri etiket kavramına sahiptir .
CSV
Tek bir masa dışında hiçbir şeye sahip değil. Nesne grafiklerini saklamak istiyorsak, şema gibi bir şema kullanmak zorunda kalırız.
#ID,Type,Field1,Field2,...,FieldN
1,String,foo
2,String,bar
3,Array<String>,1,2
Sınırlayıcılar, satır sonlandırıcılar, alıntılama, kaçış karakterleri ve genel (ikili) veriler için uygun olmayan diğer birçok konuya karşı çıkan pek çok CSV lehçesi vardır. Tüm bunlar CSV verilerinin işlenmesini oldukça zorlaştırır.
Dolayısıyla, temelde, CSV ile genel bir seri hale getirme biçimi olarak kullanıldığında kolay şeyler zor veya imkansızdır.
Bu eleştiri, zaman çizelgeleri veya bir dizi ölçüm gibi gerçekten tablo verilerini depolamak için kullanıldığında geçerli değildir. Burada, CSV (genellikle sekmeyle ayrılmış değerlerin bir varyantında), genellikle diğer veri formatlarından daha kompakt ve kullanımı kolaydır.