CSV Dosyalarını Tarayıcıda JSON Formatına Yerel Olarak Dönüştürme: Hassas Verilerin İstemci Tarafında Güvenli Ayrıştırılması

CSV Dosyalarını Tarayıcıda JSON Formatına Yerel Olarak Dönüştürme: Hassas Verilerin İstemci Tarafında Güvenli Ayrıştırılması

Hızlı Özet: Veri Gizliliğini Korumak İçin CSV'den JSON'a Nasıl Dönüştürülür?

Geleneksel çevrimiçi dönüştürücüler, CSV dosyalarınızı uzak bir bulut sunucusuna yükleyerek müşteri listeleri, finansal dökümler veya kimlik bilgileri gibi gizli verilerinizi risk altına atar. İstemci tarafında yerel dönüştürme, JavaScript'in modern FileReader API ve Web Streams mimarisini kullanarak dosyayı doğrudan bilgisayarınızın RAM belleğinde işler. Baytlar hiçbir zaman internete sızmaz, sunucu günlüğü tutulmaz ve GDPR / KVKK gereksinimlerine sıfır çabayla tam uyum sağlanır. Verilerinizi yerel geliştirici araçlarımızla güvenle dönüştürün.

1. Sunucu Tabanlı Dönüştürmenin Güvenlik Riskleri ve Sıfır Güven Mimarisi

Yazılım geliştiriciler, veri bilimcileri ve e-ticaret uzmanları gün boyunca yüzlerce CSV tablosunu JSON formatına dönüştürme ihtiyacı duyar. Ancak arama motoruna "CSV to JSON online" yazıldığında çıkan ilk 10 aracın neredeyse tamamı, dosyanızı HTTP POST isteği ile uzak bir bulut sunucusuna gönderir. Dosyanız sunucuda bir arka plan betiği (Python Pandas, Node.js veya PHP) tarafından ayrıştırılır ve ardından JSON çıktısı tarayıcınıza geri iletilir.

Bu klasik iş akışı, gizlilik ve kurumsal güvenlik standartları açısından kabul edilemez zafiyetler doğurur. Dosyanız üçüncü taraf sunucunun geçici dizinlerinde (`/tmp`), sunucu erişim günlüklerinde (access logs) ve sunucu yedekleme dizinlerinde kalıcı izler bırakabilir. Veritabanı dökümleri, müşteri e-posta listeleri, Amazon FBA gelir tabloları veya sağlık kayıtları içeren tabloların bu şekilde işlenmesi, KVKK, GDPR ve HIPAA regülasyonlarının açık bir ihlalidir.

Sıfır Güven (Zero-Trust) yaklaşımı, hiçbir harici sunucunun verinizi görmemesi gerektiğini savunur. Modern web tarayıcıları, gelişmiş JavaScript V8 motorları ve WebAssembly çalışma alanları sayesinde masaüstü uygulamaları kadar hızlı veri işleme gücüne kavuşmuştur. Verilerinizi makinenizden dışarı çıkarmadan işlemek artık bir tercih değil, profesyonel bir zorunluluktur.

2. RFC 4180 Standartları ve Yapılandırılmamış CSV Uç Noktaları

CSV (Virgülle Ayrılmış Değerler) formatı ilk bakışta çok basit görünür: her satır bir kaydı, her virgül ise bir sütunu temsil eder. Ancak pratikte CSV, dünyadaki en tutarsız veri biçimlerinden biridir. Gerçek dünyada RFC 4180 standardı doğru uygulanmadığında en deneyimli mühendisler dahi beklenmedik veri bozulmalarıyla karşılaşır.

En sık karşılaşılan yapısal zorluklar şunlardır:

  • Metin İçi Virgüller (Embedded Commas): Müşteri adresleri veya ürün açıklamaları gibi alanlar serbest metin içerdiğinde virgül ayracı metnin içine karışır. Bu alanların standart gereği çift tırnak (`"`) ile çevrelenmesi zorunludur (örneğin: "Atatürk Bulvarı, No: 45, Daire: 8"). İlkel bir `split(',')` fonksiyonu bu satırı yanlışlıkla 3 ayrı sütuna böler ve tüm şemayı bozar.
  • Kaçışlı Çift Tırnaklar (Escaped Quotes): Metin alanının kendi içinde çift tırnak işareti yer alıyorsa, RFC 4180 standardı bu işaretin ardışık iki çift tırnak (`""`) ile yazılmasını şart koşar. Ayrıştırıcının bu durumu tespit edip tek bir tırnak karakterine indirgemesi gerekir.
  • Satır İçi Satır Sonu Karakterleri (Multi-line Records): Bir hücrenin içinde Enter tuşuna basılarak alt satıra geçilmiş olabilir. Zayıf ayrıştırıcılar dosyayı `split(' ')` ile böldüğü için bu tür kayıtları iki ayrı yarım satır olarak yorumlar ve JSON çıktısında sözdizimi felaketine yol açar.
  • Bölgesel Ayraç Karmaşası: Türkiye ve Avrupa genelinde Microsoft Excel, ondalık basamak ayracı olarak virgül (`,`) kullandığı için CSV dosyalarında sütun ayırıcı olarak noktalı virgül (`;`) veya sekme karakteri (` `) kullanılır. Güçlü bir ayrıştırıcı bu durumu otomatik tespit edebilmelidir.

3. Web Tarayıcı Belleğinde Akış Halinde CSV Ayrıştırma Mimarisi

Verilerin istemci tarafında güvenle işlenmesi için modern web standartlarının sunduğu donanım seviyesi API'lerden yararlanılır. HTML5 ile hayatımıza giren FileReader API, yerel diskteki dosya baytlarını doğrudan işletim sistemi çekirdeğinden tarayıcı sanal alanına (sandbox) aktarır.

// RFC 4180 Uyumlu Temel İstemci Tarafı Belirteç (Tokenizer) Mantığı
function parseCSVToTokens(text, delimiter = ',') {
    const rows = [];
    let currentRow = [];
    let currentField = '';
    let insideQuotes = false;

    for (let i = 0; i < text.length; i++) {
        const char = text[i];
        const nextChar = text[i + 1];

        if (char === '"') {
            if (insideQuotes && nextChar === '"') {
                currentField += '"';
                i++; // İkinci tırnağı atla
            } else {
                insideQuotes = !insideQuotes; // Tırnak durumunu tersine çevir
            }
        } else if (char === delimiter && !insideQuotes) {
            currentRow.push(currentField);
            currentField = '';
        } else if ((char === '
' || char === '
') && !insideQuotes) {
            if (char === '
' && nextChar === '
') i++; // Windows CRLF desteği
            currentRow.push(currentField);
            if (currentRow.length > 1 || currentRow[0] !== '') {
                rows.push(currentRow);
            }
            currentRow = [];
            currentField = '';
        } else {
            currentField += char;
        }
    }
    if (currentField !== '' || currentRow.length > 0) {
        currentRow.push(currentField);
        rows.push(currentRow);
    }
    return rows;
}

Yukarıdaki belirteç (finite-state machine tokenizer) yaklaşımı, dosyadaki tüm karakterleri tek tek durum kontrolünden geçirir. Tırnak işaretlerinin içinde kalan virgüller ve yeni satır karakterleri bayrak durumuna göre korunur. Böylece verileriniz hiçbir sunucuya uğramadan doğrudan RAM üzerinde temiz bir JSON dizisine dönüştürülür.

Verilerinizi Güvenle Dönüştürün

Hassas finansal ve operasyonel verilerinizi %100 çevrimdışı, sıfır sunucu yüklemesiyle JSON'a dönüştürün.

CSV to JSON Aracını Aç

4. Otomatik Tip Çıkarımı (Type Inference) ve Şema Haritalama

CSV formatı doğası gereği tip bilgisi (metadata) taşımaz. Tablodaki her bir hücre ham bir metin dizesinden (string) ibarettir. Eğer tüm değerleri basitçe string olarak JSON'a aktarırsanız, sayısal hesaplamalar veya boolean kontrolleri gerektiren yazılımlarda ciddi hatalarla karşılaşırsınız.

Örneğin bir e-ticaret tablosundaki price sütunundaki 49.90 değerinin JSON içinde tırnak işaretleriyle "49.90" olarak yazılması, veritabanı sorgularında sıralama hatalarına ve matematiksel toplama problemlerine sebep olur. Gelişmiş bir yerel dönüştürücü motor şu akıllı tip kontrollerini yapmalıdır:

  • Tamsayılar ve Ondalıklı Sayılar: /^-?\d+(\.\d+)?$/ düzenli ifadesine uyan değerler JavaScript Number() fonksiyonu ile ayrıştırılmalıdır. Ancak telefon numaraları veya sıfırla başlayan posta kodları (örneğin "05421234567") string olarak bırakılmalıdır; aksi takdirde baştaki sıfır kaybolur.
  • Mantıksal (Boolean) Değerler: Küçük-büyük harf duyarsız olarak true veya false değerleri doğrudan JSON boolean tipine çevrilmelidir.
  • Boş veya Null Değerler: Boş bırakılmış hücreler yapılandırmaya bağlı olarak ya null değerine eşitlenmeli ya da JSON nesnesinden tamamen hariç tutulmalıdır.
  • ISO Tarih Biçimleri: Standartlaşmış tarih dizileri (örneğin 2026-10-23T09:00:00Z) doğrulanarak korunmalıdır.

5. Büyük Boyutlu CSV Dosyaları için Bellek Yönetimi ve Web Workers

50 MB veya 500 MB boyutundaki devasa CSV dosyalarını tarayıcıda tek parça halinde okumaya çalışmak, JavaScript V8 motorunun heap bellek sınırlarına takılmasına ve sekmenin çökmesine (Out Of Memory) yol açabilir. Ayrıca tek iş parçacıklı (single-threaded) JavaScript motoru tüm gücünü ayrıştırmaya harcarsa kullanıcı arayüzü kilitlenir.

Bu sorunu çözmek için iki temel teknoloji bir arada kullanılır:

  1. Web Workers ile Arka Plan İşleme: Ağır ayrıştırma algoritması ana UI iş parçacığından ayrılarak bağımsız bir Web Worker arka plan iş parçacığına devredilir. Böylece kullanıcı ilerleme çubuğunu izleyebilir, dönüştürmeyi iptal edebilir veya tarayıcıyı kasmadan kullanmaya devam edebilir.
  2. Parçalı Okuma (Chunking Streams): Dosya tümüyle belleğe yüklenmek yerine, 64 KB veya 1 MB'lık parçalar (chunks) halinde akış olarak okunur. Her parça tamamlandıkça bellekteki yer serbest bırakılır ve çıktılanan JSON satırları disk indirme arabelleğine yönlendirilir.

6. Karşılaştırma Tablosu: İstemci Tarafı (Yerel) vs Bulut Tabanlı Dönüştürücüler

Özellik / Güvenlik Kriteri aFolks Yerel İstemci Motoru Tipik Bulut / Sunucu Dönüştürücüler
Veri Transferi & İletim Sıfır İletim • %100 Yerel RAM Riskli • HTTP/HTTPS ile sunucuya yüklenir
Maksimum Gizlilik & Regülasyon GDPR, KVKK, HIPAA ve SOC2 tam uyumlu Sunucu saklama politikalarına bağımlı
Çevrimdışı Çalışabilme Evet (Uçak modunda bile çalışır) Hayır (Sürekli internet zorunlu)
Dönüştürme Hızı Anında (Gecikme süresi = 0 ms ağ pingleme) Yavaş (Yükleme süresi + Kuyruk + İndirme)
RFC 4180 Uç Nokta Desteği Satır içi virgül, tırnak kaçışları ve CRLF Çoğu araçta zayıf veya hatalı
Akıllı Tip Çıkarımı Sayılar, Boolean ve Null otomatik tanıma Genellikle tüm veriyi düz dize yapar

7. Adım Adım Rehber: aFolks İstemci Tarafı Araçla CSV'yi JSON'a Dönüştürme

Aşağıdaki pratik adımları takip ederek herhangi bir CSV dosyasını saniyeler içinde temiz ve yapılandırılmış JSON biçimine dönüştürebilirsiniz:

1. Dosyayı Sürükleyin

CSV dosyanızı yerel dönüştürücü arayüzüne sürükleyip bırakın veya cihazınızdan seçin. Dosya asla sunucuya gitmez.

2. Ayarları Belirleyin

Ayraç türünü (virgül, noktalı virgül veya sekme), tip çıkarımını ve JSON girinti (indentation) biçimini seçin.

3. Anında İndirin

Oluşturulan geçerli JSON yapısını tek tıkla kopyalayın veya doğrudan `.json` uzantılı dosya olarak indirin.

8. Sık Karşılaşılan Hatalar ve Çözüm Yolları

CSV'den JSON'a dönüşüm sürecinde karşılaşılan yaygın teknik sorunlar ve bunların pratik çözümleri şunlardır:

  • Görünmeyen UTF-8 BOM Karakterleri: Windows ve Excel tarafından eklenen Byte Order Mark karakteri, ilk anahtarın "id" şeklinde bozulmasına yol açar. Dönüştürücü ilk 3 baytlık bayrakları temizlemelidir.
  • Farklı Satır Uzunlukları: Bazı satırlarda eksik sütun bulunması durumunda programın çökmemesi için eksik anahtarlara otomatik null atanmalıdır.
  • Ayrılmamış Özel Karakterler: Ters bölü (`\`) veya kontrol karakterleri içeren metinler JSON çıktısında geçersiz kaçış dizisi oluşturabilir; bu nedenle serileştirme öncesinde karakterler taranmalıdır.

9. Sıkça Sorulan Sorular (SSS)

Evet. aFolks yerel dönüştürücüsü, modern HTML5 FileReader ve V8 JavaScript motorunun bellek alanını kullanır. Dosya baytları doğrudan tarayıcı çalışma belleğinde ayrıştırılır; hiçbir uzak arka uç API'sine veya harici sunucuya veri paketi gönderilmez. Ağ bağlantınızı keserek de bu işlemi başarıyla çalıştırabilirsiniz.

Geleneksel bölünmemiş string okumaları V8 heap sınırlarına takılabilir. Ancak akış tabanlı ayrıştırma (Streams API) ve Web Worker iş parçacığı mimarisi sayesinde CSV dosyaları 64 KB'lık parçalar halinde işlenir ve doğrudan JSON dizisi olarak çıktılanır; böylece ana tarayıcı sekmesi donmaz.

Hayır. RFC 4180 standartlarına tam uyumlu bir ayrıştırma motoru, çift tırnak içine alınmış metin alanlarındaki virgülleri ayırıcı olarak değil, metin dizesinin parçası olarak işler. Çift tırnaklar ise kaçış dizisiyle (escaped quotes) korunur.

Evet. aFolks dönüştürücü motoru akıllı tip çıkarımı (heuristic type inference) sunar. Tamsayılar, ondalıklı sayılar, mantıksal true/false değerleri ve null anahtarları doğru JSON veri tiplerine dönüştürülür veya isteğe bağlı olarak saf dize (string) şeklinde korunabilir.

Evet. Microsoft Excel veya eski sistemler tarafından CSV dosyasının başına eklenen 0xEF, 0xBB, 0xBF bayt dizisi ayrıştırıcı tarafından otomatik olarak tespit edilir ve ilk sütun başlığının bozulmaması için temizlenir.

Evet. Çıktı, standart nesneler dizisi (Array of Objects) veya isteğe göre anahtar-değer sözlüğü biçiminde tam geçerli RFC 8259 JSON yapısındadır ve MongoDB, PostgreSQL, Elasticsearch veya REST API uç noktalarına doğrudan yüklenebilir.
Bu teknik rehberi paylaşın: