Ana sayfa CSV’den JSON’a
CSV’den JSON’a dönüştürücü
Bir CSV dosyası yapıştırın, karşılığında bir JSON dizisi alın. Dönüştürme bu sekmede olur — hiçbir şey yüklenmediği için, barındırılan bir araca yapıştırmayacağınız veriler için de güvenlidir.
Tip algılama ve baştaki sıfır kuralı
Bir CSV dosyasındaki her hücre metindir. JSON’un ise gerçek tipleri vardır; bu yüzden her dönüştürücü hangi metnin sayı, hangisinin doğru/yanlış, hangisinin boş değer olduğunu tahmin etmek zorundadır — ve veriyi sessizce bozan şey tam olarak bu tahmindir. Kutucuğu kapatırsanız her değer metin olarak gelir; emin değilseniz güvenli seçim budur.
Algılama açıkken en önemli kural şudur: baştaki sıfır asla sayıya çevrilmez.
007 metin olarak "007" kalır; 01234,
+90 555 000 0000 ve 0000-0002-1825-0097 de öyle. Bu bir incelik
değil: posta kodları, telefon numaraları, stok kodları, ISBN’ler ve TC kimlik numaraları
baştaki sıfırı anlam taşıyan rakam dizileridir, ve klasik hesap tablosu hatası tam olarak
bu dönüşümün özensiz yapılmasıdır.
| Hücre | Algılama açıkken | Neden |
|---|---|---|
| 42 | 42 | Düz tam sayı. |
| -3.5 | -3.5 | Düz ondalık. |
| 0 | 0 | Tek başına sıfırın kaybedecek baştaki sıfırı yok. |
| 007 | "007" | Baştaki sıfır anlamlı. |
| 1.50 | "1.50" | Sondaki sıfır kaybolurdu. |
| 1e5 | "1e5" | Geri yazıldığında 100000 olurdu. |
| true / TRUE | true | Büyük/küçük harf duyarsız. |
| (boş) | null | Boş hücre, boş metin değil, olmayan değerdir. |
Genel ölçüt gidiş-dönüştür: bir değer yalnızca, ortaya çıkan sayı geri yazıldığında özgün
metni birebir verdiğinde çevrilir. 1.50, 1e5 ve 007
değerlerini koruyan tek kural budur.
Neleri doğru işler
- Tırnaklı alanlar —
"…"içindeki virgüller, tırnaklar ve satır sonları; kaçış tırnağı"". - Sekme veya virgül — ayraç başlık satırından anlaşılır, yani TSV de ayar değiştirmeden çalışır.
- CRLF veya LF — Windows ve Unix satır sonlarının ikisi de okunur.
- Eksik sütunlu satırlar — kısa bir satırın eksik sütunları boş kalır, kaymaz.
- Adsız sütunlar — boş bir başlık hücresi boş anahtar yerine
col_3olur.
Bilerek yapmadıkları
İç içe yapı kurmaz. user.name adlı bir CSV sütunu, iç içe bir nesne değil,
adı birebir "user.name" olan bir JSON anahtarı olur — ters yön olan
JSON’dan CSV’ye sayfası (İngilizce) noktayla düzleştirir, ama
noktaları yapı olarak geri okumak, sütun adında nokta bulunan her dosyayı sessizce yeniden
şekillendirirdi.
Akış (streaming) da yapmaz. Dosyanın tamamı bellekte ayrıştırılır; girdiyi 2 MB civarında tutun, ötesinde dosyayı bölün veya komut satırı aracı kullanın. Bozuk CSV’yi de onarmaz: kapanmamış tırnağı olan bir dosya bir şeye ayrışır, ama kastettiğiniz şeye değil.
Sık sorulan sorular
Dosyam bir yere yükleniyor mu?
Hayır. Dönüştürme kendi sekmenizde çalışan JavaScript’tir — dosya makinenizden hiç çıkmaz ve sayfa bir kez yüklendikten sonra çevrimdışı da çalışır. Sunucu kaynaklı bir boyut sınırı da bu yüzden yoktur; tek sınır tarayıcınızın belleğidir.
Posta kodum neden metin olarak geldi?
Sıfırla başladığı için. Bir değer yalnızca, ortaya çıkan sayı geri yazıldığında özgün metni birebir verdiğinde sayıya çevrilir; 007, 01234 ve 1.50 böyle korunur. Her sütunu metin isterseniz tip algılamayı kapatın.
CSV yerine TSV dönüştürebilir miyim?
Evet. Ayraç başlık satırından anlaşıldığı için sekmeyle ayrılmış bir dosya ayar değiştirmeden dönüşür.
Alan içindeki virgülleri işler mi?
Alan tırnak içindeyse evet — RFC 4180’in gerektirdiği budur. "Yılmaz, Ada" tek değer olarak gelir; ayrıştırıcı kaçış tırnaklarını ("") ve tırnak içindeki satır sonlarını da işler.
Boş hücreye ne olur?
Tip algılama açıkken null olur, çünkü bir CSV dosyasındaki boş hücre neredeyse her zaman "değer yok" demektir, "boş metin" değil. Algılama kapalıyken boş metin olarak kalır.
İlgili sayfalar
- /json-to-csv-converter — aynı dönüşümün ters yönü ve iç içe yapının nasıl düzleştiği (İngilizce).
- /tr/json-to-typescript — aynı JSON’dan TypeScript arayüzleri üretmek.
- /csv-to-sql-converter — JSON’u atlayıp doğrudan CREATE TABLE ve INSERT üretmek (İngilizce).
- /sample-csv-files — dönüştürücüyü denemek için hazır CSV dosyaları (İngilizce).
Son güncelleme