CSV mi JSON mu? Tablo, iç içe veri ve API’ler
İkisi de “veri dosyası”dır; ikisi aynı işi yapmaz. CSV satır-sütun dünyasına, JSON ağaç ve nesne dünyasına aittir. Yanlış seçim ya düzleştirilmiş kayıp yapı ya da Excel’de açılamayan bir yığın üretir.
CSV: düz tablo
CSV (veya TR’de sık görülen noktalı virgüllü metin) her satırda aynı sütunları tekrarlar. İnsanlar Excel’de açar, muhasebe sistemleri içe aktarır, veri bilimciler pandas ile okur. Güçlü yanları: basitlik, yaygınlık, düşük araç eşiği.
Zayıf yanları: tip bilgisi yoktur (her şey metin gibi durur), bir hücrede güvenli liste/nesne yoktur, ayraç ve kodlama kargaşası vardır, yorum veya şema dosyanın kendi içinde standart değildir.
JSON: yapı ve tipler
JSON nesne, dizi, sayı, boolean, null taşır. Bir siparişin altında kalem listesi, her kalemde ürün kodu ve adet — bu doğal JSON’dur. Web API’lerin çoğu JSON konuşur; yapılandırma dosyaları ve NoSQL dışa aktarımları da.
Zayıf yanları: büyük düz tablolarda satır başına tekrarlayan anahtar adları dosyayı şişirebilir; muhasebecinin çift tıklayıp düzenlemesi zordur; bozuk bir virgül tüm dosyayı geçersiz kılar.
İç içe yapı sorunu
Diyelim JSON’da müşteri ve siparişler iç içe:
{ "musteri": "Ayşe", "siparisler": [ {"urun": "A", "adet": 2}, {"urun": "B", "adet": 1} ] }
Bunu tek satırlık CSV’ye çevirirseniz seçenekleriniz kötüdür: siparişleri
tek hücrede metin yapmak, satır çoğaltmak (Ayşe iki kez) veya sütunları
siparis1_urun, siparis2_urun diye yaymak. Her
seçimde ya anlam ya da düzen kaybolur. Kural: veri gerçekten
hiyerarşikse JSON’da tutun; tabloya indirgemeyi bilinçli bir tasarım adımı
yapın, “otomatik dönüştürücü her şeyi çözer” demeyin.
Başlık satırları ve anahtarlar
- CSV’de genelde ilk satır sütun adıdır. Boş başlık, yinelenen başlık veya birleşik Excel başlığı dönüşümü bozar.
-
JSON dizi-of-objects (
[{...},{...}]) CSV’ye en yakın eşlemedir: her nesnenin anahtarları sütun olur. -
Tek bir kök nesne (
{"meta":..., "rows":[...]}) doğrudan tablo değildir; hangi dizinin “satırlar” olduğunu seçmeniz gerekir.
API’ler vs elektronik tablolar
API / uygulama entegrasyonu: JSON. Tipler, null, iç içe kaynaklar, HTTP gövdesi — ekosistem buna göre kuruludur.
İnsan düzenlemesi, muhasebe, toplu e-posta listesi: CSV veya XLSX. İnsan ızgarada düşünür; JSON editörü herkesin işi değildir.
Köprü sık gerekir: API’den JSON alıp raporu Excel’de bitirmek veya Excel’den CSV üretip JSON API’ye basmak. Köprüde kayıp bekleyin; sürpriz olmasın.
Dönüşüm tuzakları
-
Sayı / metin. CSV’de
00123çoğu parser’da123olur. JSON’da string olarak"00123"tutun. -
Boolean ve null. CSV’de
true/belirsizdir; JSON’da nettir. - Ayraç ve tırnak. CSV alanında virgül/noktalı virgül varsa alan tırnaklanmalıdır. Dönüştürücü bunu bozarsa satır kayar.
- Tek nesne vs dizi. Bazı araçlar tek satırlık tabloyu nesne, çok satırı dizi üretir — hedef API hangisini bekliyor bakın.
- Türkçe karakter / BOM. CSV tarafında UTF-8 tutarlılığı şart; JSON zaten UTF-8 varsayar ama dosya ANSI kaydedilmişse bozulur.
Hızlı karar
- Her satır aynı sütunlar, Excel’de açılacak → CSV (veya XLSX).
- Sipariş kalemi, adres bloğu, etiket dizisi gibi iç yapı var → JSON.
- Hem insan hem API → kaynağı JSON tutup rapor için ayrı CSV üretin; tek dosyada her şeyi çözmeye çalışmayın.
Dönüştürücü bir köprüdür, şema tasarımcısı değildir. Önce verinin şekline karar verin; sonra formatı seçin.
CSV ↔ JSON dönüşümünü tarayıcıda deneyin; dosya içeriğini sunucuya yüklemeniz gerekmez.
CSV ↔ JSON aracını aç