CSV'den JSON'a
Tablo verisini JSON dizisine çevirin; ayırıcı kendiliğinden bulunur
Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.
Bu araç işinizi gördü mü?
Teşekkürler, geri bildiriminiz alındı.
Nasıl çalışır?
İlk satır başlık kabul edilir ve JSON nesnelerinin anahtarlarını oluşturur. Ayırıcı otomatik seçildiğinde tek satıra değil dosyanın ilk satırlarına birden bakılır: virgül, noktalı virgül, sekme ve dikey çizgi adaylarından hangisi her satırda aynı sayıda sütun üretiyorsa o seçilir; başlığında dikey çizgi geçen bir dosya bu sayede yanlış bölünmez ve Excel'in Türkçe kurulumlarının kullandığı noktalı virgül kendiliğinden bulunur. Satır sonunun üç biçimi de tanınır: Windows'un CR+LF'i, Mac ve Linux'un LF'i ve çok eski programların yalnız CR'si. Tırnak içine alınmış alanlar RFC 4180 kurallarına göre okunur, yani alanın içindeki virgül ve satır sonu veri sayılır, ayırıcı sayılmaz. Sayı dönüşümü açıkken tek anlamlı değerler sayıya çevrilir (34, -3, 12,5), true ve false mantıksal değer olur; okunuşu iki türlü olabilen her yazım metin bırakılır.
Bu araç csv to json, tablo json aramalarıyla da biliniyor.
CSV nedir?
CSV (Comma-Separated Values), tablo verisini düz metin olarak saklamanın en eski ve en yaygın yoludur: her satır bir kayıt, her hücre bir ayırıcıyla bölünür. Excel ve e-tablo programları dışa aktarımda CSV sunar; bankacılık dökümleri ve e-ticaret raporları da çoğunlukla bu biçimde iner. Adının aksine ayırıcı her zaman virgül değildir: Türkçe sistemlerde virgül ondalık işareti olduğu için Excel, CSV'yi noktalı virgülle kaydeder.
JSON nedir?
JSON (JavaScript Object Notation), veriyi anahtar-değer çiftleri ve listelerle temsil eden metin biçimidir ve web servislerinin ortak dilidir: API'ler veriyi çoğunlukla JSON ister ve JSON döndürür. İç içe yapı taşıyabilir, her değerin türü (sayı, metin, mantıksal) bellidir ve hemen her programlama dili onu tek satırla okur. Tablodan farkı, düz satır-sütun düzenine mecbur olmamasıdır.
CSV ile JSON arasındaki fark nedir?
CSV düz bir tablodur: satırlar ve sütunlar vardır, hiyerarşi yoktur ve hücre türleri belirsizdir — "34" sayı mı metin mi, dosyadan anlaşılmaz. JSON ise tür bilgisi taşır ve iç içe yapı kurabilir. E-tablodan gelen veriyi bir API'ye, içe aktarma ekranına veya koda vereceğiniz zaman bu dönüşüm gerekir; araç, başlık satırını anahtarlara çevirir ve isterseniz sayıları gerçek sayı türüne dönüştürür.
Excel'den gelen dosyalarda dikkat
Türkçe Windows kurulumlarında Excel, CSV'yi noktalı virgülle kaydeder çünkü virgül ondalık ayırıcı olarak kullanılır. Ayırıcı otomatik seçiliyse bu durum kendiliğinden çözülür.
Dosyanın başında görünmeyen bir BOM işareti bulunabilir; araç bunu temizler, yoksa ilk sütun adı bozuk görünürdü.
Hangi hücre sayı olur, hangisi metin kalır?
Sayı dönüşümü açıkken bir hücrenin sayıya çevrilmesi için okunuşunun tek olması gerekir. 34, -3 ve 12,5 böyledir. Ama 1.234 böyle değildir: Türkiye'de bu yazım bin iki yüz otuz dörttür, İngilizce sistemlerde ise noktanın ondalık işareti olduğu yerde bir tam iki yüz otuz dört. Dosyanın hangisini kastettiği dosyadan anlaşılmadığı için araç tahmin etmez, hücreyi metin bırakır. Yanlış tahminin bedeli büyüktür: değer bin kat küçülür veya büyür ve sonuçta hiçbir uyarı görünmez.
Kural şudur: ayırıcıdan sonra tam üç hane varsa (1.234 ya da 1,234) o hücre binlik ayraçlı yazılmış olabilir, metin kalır. Bir veya iki hane varsa (12,5 · 3.75) binlik grubu üç haneli olmak zorunda olduğu için okunuş tektir ve değer sayıya çevrilir. Aynı mantıkla başı sıfırlı kodlar (007, 0532…) ve 15 haneden uzun rakam dizileri de metin bırakılır; sayıya çevrilseler baştaki sıfır silinir, uzun numaranın son haneleri sıfırlanırdı.
Bu değerleri gerçekten sayı olarak kullanacaksanız, hesap yapacağınız yerde binlik ayracını kaldırıp öyle verin. Tüm sütunların metin kalmasını istiyorsanız "Sayıları dönüştür" ayarını Hayır yapın; o zaman true/false değerleri de metin olarak çıkar.
- 34 · -3 · 12,5 · 3.75 → sayı
- 1.234 · 1,234 (üç haneli grup) → metin, okunuşu belirsiz
- 007 · 0532 → metin, baştaki sıfır bilgidir
- 15 haneden uzun numara → metin, duyarlık kaybolurdu
Nesne dizisi mi, dizi dizisi mi?
Nesne dizisi çoğu API ve veritabanı içe aktarımı için doğru biçimdir: her satır, anahtar-değer çiftlerinden oluşan bir nesne olur.
Dizi dizisi ise başlığı da veri olarak korur ve sütun sırasının önemli olduğu durumlarda tercih edilir.
Sık sorulanlar
CSV'yi JSON'a nasıl çeviririm?
Veriyi sol panele yapıştırmanız yeterli; sonuç anında sağ panelde çıkar. Kopyalayabilir veya .json dosyası olarak indirebilirsiniz.
Noktalı virgülle ayrılmış dosyalar destekleniyor mu?
Evet. Ayırıcı otomatik bulunur; isterseniz listeden elle de seçebilirsiniz.
Alanın içindeki virgül sorun çıkarır mı?
Hayır. Tırnak içine alınmış alanlar doğru okunur; içlerindeki virgül ve satır sonu veri olarak korunur.
1.234 neden sayıya çevrilmedi?
Bu yazımın okunuşu tek değildir: Türkçe yazılmış bir dosyada bin iki yüz otuz dört, İngilizce yazılmış bir dosyada bir tam iki yüz otuz dörttür. Araç ikisi arasında tahmin yürütmek yerine hücreyi metin bırakır, çünkü yanlış tahmin değeri bin kat değiştirir ve bunu size hiçbir şey haber vermez. Ondalık kısmı bir veya iki haneli olan değerler (12,5) tek anlamlı olduğu için sayıya çevrilir.
Eski bir Mac'ten ya da eski bir programdan gelen CSV okunur mu?
Evet. Satır sonu olarak yalnız satır başı karakteri (CR) kullanan dosyalar da doğru bölünür. Bu dosyalar birçok araçta tek satır gibi görünür ve hata da vermez; burada satırlar ayrı ayrı okunur, sonuç satırındaki satır sayısından bunu doğrulayabilirsiniz.
Verim bir yere gönderiliyor mu?
Hayır. Ayrıştırma tarayıcınızda yapılır, yapıştırdığınız veri hiçbir sunucuya gitmez.