CSV ↔ JSON Dönüştürücü
CSV ve JSON web'deki en yaygın iki veri değişim biçimidir. CSV elektronik tabloların evrensel dilidir; her veritabanı yönetim paneli, analiz panosu, pazarlama platformu ve SaaS aracı CSV dışa aktarır çünkü 1979'da VisiCalc'in piyasaya çıkmasından bu yana elektronik tablolar iş verilerinin ortak dilidir. JSON ise API'lerin, JavaScript uygulamalarının, yapılandırma dosyalarının ve modern veri boru hatlarının evrensel dilidir; 2013'te IETF standardı olduktan sonra açık web'deki hemen hemen her diğer hafif değişim biçimini yemiştir. İki format arasında günlük, sürekli bir ihtiyaç oturur: bir tablodaki satırları JavaScript uygulamasına taşımak veya bir API yanıtını bir tabloya taşımak ki mühendis olmayan biri filtreleyebilsin.
Bu dönüştürücü bu yuvarlak dönüşümü doğru, hızlı ve gizli bir şekilde halleder. Sol panele CSV yapıştırın; sağ panel milisaniyeler içinde temiz bir JSON dizisiyle dolar. Bir JSON dizisi yapıştırın; sağ panel Excel, Numbers, LibreOffice Calc veya Google Sheets'te açılmaya hazır, düzgün biçimde tırnaklanmış bir CSV ile dolar. Altta yatan ayrıştırıcı PapaParse'tır; JavaScript ekosistemindeki çoğu CSV içe aktarma özelliğini güçlendiren kütüphane, yani üretim veri boru hatlarıyla aynı kenar durum işleme elde edersiniz: doğru şekilde kaçırılmış tırnaklı alanlar, hücre içindeki yeni satırlar, BOM ile veya BOM olmadan UTF-8 ve karışık satır sonları.
CSV'den JSON'a tarafında kontrol edebileceğiniz dört davranış vardır. Birincisi, ilk satırın başlık olarak kabul edilip edilmeyeceği: bunu açmak başlık adları anahtar olan bir nesne dizisi üretir; kapatmak her satırın yalnızca değer listesi olduğu bir dizi dizisi üretir. İkincisi, ayırıcı işleme: otomatik algılama virgül, noktalı virgül ve sekmeleri otomatik olarak tanır ki bu önemlidir çünkü Avrupa elektronik tabloları genellikle noktalı virgül kullanır — Almanca veya Türkçe yerel ayarında Excel buna varsayılan olarak ayarlanır — İngilizce yerel ayarları ve çoğu API ise virgül kullanır. Üçüncüsü, çıktı şekli: standart bir nesne dizisi, kompakt bir dizi dizisi veya ilk sütunun üst düzey anahtara dönüştüğü anahtarlı bir nesne seçebilirsiniz; bu, kimliğe göre hızlı O(1) arama istediğinizde kullanışlıdır. Dördüncüsü, tür çıkarsama: çıkarsama kapalıyken her değer bir dizedir, bu güvenlidir ve bilgi kaybetmez; açıkken sayısal sütunlar gerçek sayılara dönüşür, true ve false dizeleri boolean olur ve boş hücreler ile null kelimesi JSON null olur. Tür çıkarsama bilinçli olarak isteğe bağlıdır — örtük dönüşümler, bir ZIP kodu veya telefon numarası sütunu baştaki sıfırlarını kaybettiğinde yaygın bir hata kaynağıdır, bu yüzden varsayılan kapalıdır.
JSON'dan CSV'ye tarafında dönüştürücü bir nesne dizisi veya dizi dizisi kabul eder. Nesne dizisiyle, nesne anahtarları sütun başlıkları olur ve değerler bu sütunlarda satır olur. Nesneler arasındaki eksik anahtarlar temiz bir şekilde ele alınır: tüm anahtarların birleşimi başlık satırını oluşturur ve eksik hücreler boş bırakılır. Dizi dizisiyle, ilk iç dizi başlık satırı olarak ele alınır. İç içe nesneler bu yönde yaygın bir sancı kaynağıdır ve PapaParse varsayılan olarak bunları [object Object] olarak dizeleştirir, ki bu neredeyse hiçbir zaman istediğiniz şey değildir. Bu araç nesneleri nokta gösterimi kullanarak bir seviye düzleştirir: {"address": {"city": "İstanbul", "zip": "34000"}} gibi bir adres alanı, address.city ve address.zip adlı iki sütun olur. Daha derin iç içelikler hücrede JSON dizesi olarak korunur; pratikte bir seviyelik düzleştirme gerçek API yanıtlarının büyük çoğunluğunu kapsar.
Çıktı ayırıcısı ayrı olarak yapılandırılabilir. Elektronik tablo kullanımı için hedef uygulamanızın beklediği ayırıcıyla eşleştirin: İngilizce sistemlerde virgül varsayılandır, Avrupa sistemlerinde noktalı virgül ve sekme doğrudan metin editörlerine yapıştırmak veya Google'ın BigQuery toplu içe aktarması gibi TSV'ye özel boru hatları için kullanışlıdır. Başlık dahil etme kapatılabilir, örneğin başlıkları zaten olan bir tabloya yeni satırlar eklerken.
Her iki dönüşüm de canlıdır. Yazarken veya yapıştırırken çıktı 300 milisaniyelik bir gecikmeden sonra güncellenir. Çok büyük girdiler için — genellikle iki megabaytın üzerinde — bir uyarı görünür ve her tuş vuruşunda ayrıştırıcıyı yeniden çalıştırmaktan kaçınmak için Ctrl/Cmd+Enter ile manuel tetikleyiciye güvenebilirsiniz. PapaParse'ın kendisi onlarca bin satırı etkileşimli olarak işleyecek kadar hızlıdır, ancak tarayıcının sonucu da işlemesi gerekir, bu nedenle düşük donanımlı cihazlarda açık tetikleyici daha iyi bir UX olur.
Kopyala ve indir düğmeleri en yaygın sonraki iki adımı kapsar. Kopyala, çıktıyı küçük bir onay işaretiyle panonuza yerleştirir; indir, doğru uzantıya sahip (.json veya .csv) bir yerel dosya oluşturur ve tarayıcı kaydet iletişim kutusunu tetikler. Üretilen dosya adları kasıtlı olarak geneldir (data.json, data.csv) böylece kaydederken yeniden adlandırabilirsiniz; orijinal dosya adını korumak için akıllıca davranmaya çalışılmaz çünkü girdi genellikle dosya yerine yapıştırılmış metindir. Temizle düğmesi her iki paneli sıfırlar ve sıfırdan başlamak istediğinizde her zaman hazırdır.
Gizlilik, bu aracı tipik bir ücretsiz çevrimiçi dönüştürücü yerine kullanmanın nedenidir. Gerçek iş gününde CSV veya JSON aracılığıyla hareket eden veriler genellikle hassastır: bir CRM'den dışa aktarılan müşteri listeleri, kullanıcı analiz tabloları, dahili fiyatlandırma, ürün envanteri veya denetim günlükleri. Bunların herhangi birini üçüncü taraf bir sunucuya yüklemek, gizlilik politikası aksini söylese bile günlüğe kaydedilmeye, önbelleğe alınmaya ve çalışan erişimine maruz bırakır. Bu dönüştürücü tamamen tarayıcınızda çalışır: yapıştırdığınız baytlar sayfadan ayrılmaz. Sayfa yüklendikten sonra internet bağlantınızı kesebilirsiniz ve araç hâlâ çalışır. Giden yüklemeleri engelleyen bir proxy arkasındaki kurumsal VPN içinde çalıştırabilirsiniz ve hâlâ çalışır. KVKK, GDPR, HIPAA, SOX veya NDA kapsamında herhangi bir şey işliyorsanız, tarayıcı tabanlı bir dönüştürücü, tedarikçi-risk incelemesi gerektirmeyen tek seçenektir.
Bilinmesi gereken birkaç ince ayrıntı var. Birincisi, CSV'nin tırnaklama kuralları şaşırtıcı derecede zordur: virgül, yeni satır veya çift tırnak içeren bir hücre çift tırnakla sarılmalı ve dahili çift tırnaklar iki katına çıkarılmalıdır. Dönüştürücü bunu her iki yönde de doğru şekilde ele alır, bu nedenle bir CSV'yi JSON aracılığıyla yuvarlamak çoğu durumda bayt-özdeş çıktı üretir. İkincisi, JSON'un kanonik bir sütun sıralaması yoktur, bu nedenle JSON'dan CSV'ye dönüştürürken sütun sırası ilk nesnedeki anahtarların ekleme sırasını takip eder; modern JavaScript motorlarında bu kaynakta göründükleri sıradır. Daha sonraki bir nesnenin yeni anahtarları varsa, mevcut sütunların sağına eklenir. Üçüncüsü, null ile boş dize gerçek bir ayrımdır: tür çıkarsama modunda boş bir CSV hücresi JSON null olur, oysa JSON'daki literal "" dizesi boş bir CSV hücresi olur. Bu, eksik veriyi boş veriden ayırt eden boru hatları için önemlidir.
Bu araç, diğer Omnvert geliştirici yardımcı araçlarıyla doğal olarak eşleşir. JSON Viewer, dönüşümden sonra sonuç ağacını keşfetmek, küçültmek veya anahtarları alfabetik olarak sıralamak için yararlıdır. Regex Tester, içe aktarmadan önce dağınık bir CSV'yi temizlemeniz gerektiğinde yardımcı olur — telefon numaralarını normalleştirme, boşlukları çıkarma veya e-posta sütunlarını doğrulama gibi şeyler. Hash Generator, tekilleştirme veya önbellek anahtarları için bir sütundan kararlı kimliklere ihtiyaç duyduğunuzda kullanışlıdır. Ve Base64 Dönüştürücü, ikili verileri güvenli bir şekilde bir CSV veya JSON alanına koymak için kodlama ihtiyacını karşılar. Bunların hepsi aynı gizlilik garantileriyle tarayıcıda çalışır, böylece tüm veri-temizleme iş akışı tek bir sekmede, dönüştürme API'sine tek bir istek olmadan gerçekleşebilir.
Son olarak, yaygın veri şekilleri üzerine pratik bir not. API yanıtları genellikle gerçek yüklerini {"data": [...], "meta": {...}} gibi bir zarfa sarar — bu dönüştürücü dizinin kendisini girdi olarak bekler, bu yüzden zarfı değil iç data dizisini yapıştırmanız gerekir. Elektronik tablo dışa aktarmaları bazen UTF-8 BOM içerir ve bazen dışa aktarma aracından kalan sondaki boş satırlar içerir; her ikisi de şeffaf şekilde ele alınır. Karışık ayırıcılara sahip dosyalar (bir satırda virgül, diğerinde noktalı virgül) bozuktur ve belirsiz olmadan ayrıştırılamaz — bu olursa, satırların çoğuyla eşleşen bir manuel ayırıcı seçin ve aykırı değerleri elle düzeltin. Bu kenar durumları nadirdir ama olduğunda çıktı panelinin üstündeki hata mesajı size satır numarası dahil tam olarak nerede yanlış gittiğini söyler.
CSV ve JSON'un neden dönüştürücüye ihtiyaç duyduğunu anlamak için biraz tarih bilmek yardımcı olur. CSV 2005'te RFC 4180'e kadar resmi olarak standartlaştırılmadı ve bu belge bile katı bir kural yerine zaten yaygın uygulamanın bir en-iyi-çaba tanımıdır. Sonuç olarak vahşi doğadaki CSV'de gerçek belirsizlik vardır: satır sonları CRLF, LF hatta CR olabilir; tırnaklı alanlar birden fazla satıra yayılabilir; kodlama UTF-8, UTF-16, Windows-1252 veya eski bir bölgesel kod sayfası olabilir; ve Avrupa'da ayırıcı genellikle noktalı virgüldür çünkü virgül ondalık ayırıcı ile çakışır. Güçlü bir dönüştürücünün tüm bunları şikayet etmeden ele alması gerekir ve bu aracın altındaki PapaParse bunu on yıl boyunca üretim kullanımıyla sağlamlaştırmak için işte bunu yapar.
- Bir veritabanı yönetim panelinden CSV dışa aktarımını JavaScript uygulaması için JSON'a dönüştürün.
- Bir JSON API yanıtını mühendis olmayan birinin Excel veya Google Sheets'te açabilmesi için CSV'ye dönüştürün.
- İç içe JSON kayıtlarını bir seviye düzleştirerek elektronik tabloya uygun bir tablo üretin.
- Avrupa noktalı virgülle ayrılmış CSV'leri virgülle ayrılmış CSV veya JSON'a normalize edin.
- Ürün ekibinizin sürdürdüğü bir elektronik tablodan testler ve fikstürler için seed verisi hazırlayın.
- JSON Viewer'a yapıştırmak ve ağaç navigasyonu için bir CSV'yi JSON'a dönüştürerek hızla inceleyin.
- Başka bir yerden gelen JSON dışa aktarımından bir SaaS aracına (CRM, e-posta platformu, analiz) toplu içe aktarma için CSV oluşturun.
- Bir sohbet mesajındaki virgülle ayrılmış veriyi koda yapıştırmak için JSON'a dönüştürün.
- 1Bir yön seçin: CSV → JSON veya JSON → CSV.
- 2Verilerinizi sol panele yapıştırın veya cihazınızdan bir .csv / .json dosyası yükleyin.
- 3Seçenekleri ayarlayın: başlıklar, ayırıcı, çıktı biçimi, CSV → JSON için tür çıkarsama.
- 4Sağ panelin 300 ms gecikmeden sonra canlı güncellendiğini izleyin veya Ctrl/Cmd+Enter'a basın.
- 5Çıktıyı panonuza kopyalayın veya .json ya da .csv dosyası olarak indirin.