Skip to content

CSV'den JSON'a Dönüştürücü (ve tersi)

Gerçek RFC 4180 ayrıştırmasıyla CSV ↔ JSON, tamamen tarayıcınızda.

Buğra SözeriGeliştirici
Updated · Published

CSV önemsiz görünür — virgülle ayrılmış değerler — ve bu kadar çok çeviricinin işi yanlış yapmasının nedeni tam da budur. Gerçek dünyadaki CSV’de virgül içeren tırnaklı alanlar, iki çift tırnak olarak yazılan kaçışlı tırnaklar, tek bir hücrenin içine gömülü satır sonları ve bir ayraç lehçeleri hayvanat bahçesi vardır: Avrupa yerel ayarlarının çoğunda Excel, virgül ondalık ayracı olduğu için noktalı virgülle dışa aktarır. Aşağıdaki ayrıştırıcı, CSV’nin standarda en yakın şeyi olan RFC 4180’i izler ve virgül, noktalı virgül ya da sekme ayraçlarını otomatik algılar. Her şey tarayıcınızda yerel çalışır; veriniz asla bir sunucuya değmez.

[ { "name": "Doe, Jane", "city": "Berlin", "zip": "10115" }, { "name": "Bob", "city": "Princeton", "zip": "08540" } ]

How to use

  1. Bir yön seçin

    CSV → JSON veya JSON → CSV. Girişe bir .csv ya da .json dosyası bırakmak yönü otomatik olarak değiştirir.

  2. Verinizi yapıştırın veya bırakın

    Metni doğrudan yapıştırın ya da bir .csv veya .json dosyasını (8 MB'a kadar) giriş kutusuna sürükleyin. Dönüştürülen çıktı siz yazarken belirir.

  3. Seçenekleri ayarlayın

    Yanlış tahmin etmediği sürece ayracı otomatik algılamada bırakın. Başlıksız veri için 'İlk satır başlıktır' seçeneğinin işaretini kaldırın; 'Türleri çıkarsa' seçeneğini yalnızca verinizde baştaki sıfırlar veya uzun sayısal kimlikler yoksa işaretleyin.

  4. Kopyalayın veya indirin

    Hızlı yapıştırmalar için kopyala düğmesini kullanın ya da sonucu data.json veya data.csv olarak indirin.

Frequently asked questions

Yapıştırmak yerine dosya yükleyebilir miyim?
Evet — bir .csv veya .json dosyasını giriş kutusuna sürükleyin. Dosya, tarayıcının FileReader'ı ile yerel olarak okunur (8 MB'a kadar) ve asla hiçbir yere yüklenmez. Bir .json dosyası bırakmak aracı JSON → CSV moduna da geçirir.
Sayılar neden varsayılan olarak dizgi kalıyor?
Çünkü sessiz tür dönüşümü gerçek veriyi bozar. 08540 gibi bir posta kodu sayıya dönüştüğü an baştaki sıfırını yitirir; kart veya hesap numarası gibi 16 haneli bir kimlik JavaScript'in güvenli tamsayı aralığını (2^53) aşar ve yuvarlanır. Dizgiler kayıpsızdır; 'Türleri çıkarsa' seçeneğini yalnızca sütunlarınızın gerçekten sayısal ya da boole olduğundan emin olduğunuzda etkinleştirin.
CSV'im noktalı virgül kullanıyor — çalışır mı?
Evet. Almanca, Fransızca, Türkçe ve diğer çoğu Avrupa yerel ayarında Excel, virgül orada ondalık ayracı olduğu için noktalı virgülle ayrılmış dosyalar üretir. Otomatik algılayıcı ilk veri satırında virgül, noktalı virgül ve sekmeyi puanlar ve kazananı seçer; açılır menüden bir ayracı zorla da seçebilirsiniz.
Hücre içindeki satır sonları ne olacak?
Doğru işlenir. RFC 4180'e göre çift tırnak içine alınmış bir alan satır sonu, virgül ve (ikilenerek kaçışlanmış) tırnak içerebilir. Ayrıştırıcı, satırları körlemesine satır sonlarından bölmek yerine tırnak durumunu satırlar boyunca izler — hızlı yazılmış derme çatma çeviricilerin çoğunun kırıldığı yer tam burasıdır.
İç içe JSON, CSV'ye nasıl dönüştürülüyor?
CSV düzdür; iç içe nesneler ve diziler doğal olarak temsil edilemez. Bu araç, iç içe her değeri JSON.stringify ile hücresine seri hale getirir — kayıplı bir düzleştirme tahmini yerine dürüst bir sınırlama. Noktalı yol biçiminde sütun düzleştirmesi gerekiyorsa önce JSON'u yeniden yapılandırın.
Yinelenen sütun başlıklarında ne olur?
Yinelenen başlık adları bir dizin eklenerek tekilleştirilir: ikinci bir 'name' sütunu 'name_2', üçüncüsü 'name_3' olur ve böyle devam eder. Bu olmasa, sonraki sütunlar ortaya çıkan nesnelerde öncekilerin üzerine sessizce yazardı.

About

Pratikte RFC 4180 ile sahadaki lehçeler

RFC 4180, 2005 tarihli bilgilendirici bir nottur, katı bir standart değil; ama makul çekirdeği kodlamıştır: virgülle ayrılan alanlar, CRLF ile ayrılan kayıtlar, virgül, tırnak veya satır sonu içeren alanların çift tırnağa alınması ve gerçek tırnakların ikilenerek kaçışlanması. Saha ise geri kalan hemen her konuda anlaşamaz — noktalı virgül ve sekme ayraçları, yalın LF satır sonları, isteğe bağlı sondaki satır sonu, Excel'den gelen bayt sırası işaretleri ve başlıksız dosyalar. Sağlam bir çevirici, girişte bu lehçeleri kabul ederken (bu araç ayraçları otomatik algılar ve hem CRLF hem LF kabul eder) çıktıda katı biçimde uyumlu üretir.

CSV'nin JSON'u yendiği yerler ve tersi

CSV düz, tablo halindeki veride kazanır: daha küçüktür, satır satır akar, Excel ve Google E-Tablolar'da doğrudan açılır ve şimdiye kadar yazılmış her veritabanına ve dataframe kütüphanesine yüklenir. JSON, verinizin yapı kazandığı anda kazanır — iç içe geçme, eşit olmayan uzunlukta diziler, türlü değerler veya isteğe bağlı alanlar. Ayrıca kendini tanımlar ve dizgi ile sayı ayrımında nettir; CSV bu konuda temelden belirsizdir. İşe yarar bir kural: veri bir tabloysa CSV gönderin; bir ağaçsa JSON gönderin; bugün tablo ama yarın yapı kazanabilirse JSON gönderin ve boyut maliyetini kabullenin.

Sources & references

Authoritative references behind the math, constants, and tables on this page. Verified by Buğra Sözeri on the dates shown and re-checked at every deploy.

İlgili Türkçe araçlar