CSV ↔ JSON Çevirici

CSV'yi JSON nesne dizisine ve tersine çevirin — tırnaklı alanlar, noktalı virgül ve sekme ayraçları desteklenir; tamamı tarayıcınızda.

1.124 görüntülenme

Dönüşüm Aslında Nasıl Çalışır

CSV ve JSON veriyi farklı biçimde modeller; hangi yönde çevirdiğiniz, işin ne kadar tahmine dayandığını belirler. CSV → JSON neredeyse mekaniktir: başlık satırı anahtar kümesi olur, sonraki her satır o anahtarlarla bir nesneye dönüşür — ad,yas üstünde Ada,36[{"ad":"Ada","yas":"36"}]. Virgül içeren tırnaklı alanlar, kaçışlı tırnaklar ("") ve çok satırlı hücreler RFC 4180'e göre ayrıştırılır; ayraç (virgül, noktalı virgül veya sekme) ilk satırdan otomatik saptanır.

Asıl zorluk JSON → CSV'de yaşanır. CSV kesinlikle düzdür — bir satır, bir kayıt, hücre başına bir değer — oysa JSON doğal olarak iç içe geçmeyi destekler: bir nesnenin bir alanı, başka bir nesne veya dizi olabilir; bunu tek bir CSV hücresine nasıl sığdıracağınıza dair evrensel kabul görmüş bir yöntem yoktur. {"ad":"Ada","adres":{"sehir":"Londra"}} örneğini ele alalım — sütun adı adres.sehir mi olmalı (nokta notasyonu, iç içe nesneyi ek sütunlara düzleştirmek) yoksa tüm adres değeri tek hücreye ham bir JSON metni olarak mı gömülmeli, örneğin {"sehir":"Londra"}? İkisi de pratikte kullanılır ve hiçbiri "tek doğru" standart değildir; bu araç tek seviyelik iç içe geçmeler için nokta notasyonunu, diziler ve daha derin yapılar içinse JSON metni gömmeyi tercih eder — böylece basit nesneler gerçekten tabloya uygun kalırken karmaşık olanlarda veri sessizce kaybolmaz.

Şunu içselleştirmek önemli: bu, aracın bir eksiği değil, veri modelinin kendisindeki bir boşluktur. Denediğiniz herhangi bir CSV↔JSON dönüştürücü — bu araç dahil — düzleştirme konusunda editoryal bir karar vermek zorundadır, çünkü iki format hiçbir zaman birebir birbirinin yerine geçecek şekilde tasarlanmamıştır. CSV, tablo halindeki defterler için; JSON ise keyfi şekilli belgeler için tasarlanmıştır. Bunu baştan bilmek, karmaşık bir JSON dosyasının CSV üzerinden gidip gelmesinin neden nadiren tam orijinal yapıyı ürettiğini ve derin iç içe geçmiş veriyi JSON biçiminde tutmanın neden çoğu zaman aşılması gereken bir kısıtlama değil, doğru tercih olduğunu açıklar.

Bilinmesi Gerekenler

  • CSV'de veri tipi yoktur. Sayı çevirimini açmadıkça her değer metin olarak gider; açtığınızda sayı görünümlü metinler gerçek JSON sayısına döner (başı sıfırlı "007" gibi kodlar, dönüştürülürse bozulacağı için metin kalır).
  • Ayraç varsayılmaz, saptanır. Excel, birçok Avrupa ve Türkçe bölge ayarında noktalı virgülle dışa aktarır çünkü orada virgül zaten ondalık ayracıdır — ayrıştırıcı doğru olanı seçmek için başlık satırını kontrol eder.
  • JSON → CSV tüm anahtarları birleştirir. Bazı kayıtlarda başkalarında olmayan bir alan varsa, başlık dizideki her yerde görülen tüm anahtarları içerir; eksik olanlar o satırda boş bırakılır.
  • Hiçbir şey tarayıcınızdan çıkmaz. Ayrıştırma ve dönüşüm tamamen yerel JavaScript ile olur; hassas bir dökümü yapıştırmak onu hiçbir yere göndermez.
  • Satır sırası her iki yönde de korunur. Dönüşümden sonra ilk veri satırı yine ilk sırada kalır; bu, bir tablonun ya da alt sistemdeki bir betiğin açık bir sıralama anahtarı yerine konumsal sıraya güvendiği durumlarda önemlidir.

Sıkça Sorulan Sorular

Sayılarım neden metin oldu?

CSV'de tip yoktur — her şey metindir. "Sayıları çevir" seçeneğini açın; sayı görünümlü değerler JSON sayısına döner (başı sıfırlı kodlar, bozulmasın diye metin kalır).

Excel CSV'm noktalı virgüllü — çalışır mı?

Evet — ayraç ilk satırdan saptanır. Türkçe ve birçok Avrupa Excel ayarı, virgül zaten ondalık ayracı olduğu için noktalı virgülle dışa aktarır.

İç içe JSON ne olur?

CSV düzdür: iç içe nesne/diziler hücre içinde JSON metni olarak ya da sığ nesnelerde nokta notasyonlu sütunlara düzleştirilerek yazılır. Derin veriyi tabloya zorlamak yerine önce düzleştirin ya da JSON'da bırakın.

Araç iç içe JSON'u düzleştirmek için neden tek bir standart seçmiyor?

Çünkü ortada gerçekten tek bir standart yok — farklı ekosistemler farklı yollar izliyor. Nokta notasyonlu sütunlar (adres.sehir) basit iç içe geçmeleri tabloda okunur tutar ama sütun sayısını hızla artırır; iç içe değeri ham JSON metni olarak gömmek alan başına tek sütunu korur ama o hücreyi sonradan yeniden ayrıştırmayı gerektirir. Bu araç sığ nesnelerde nokta notasyonunu, diziler ve daha derin iç içe geçmelerde gömülü JSON metnini kullanır.

JSON → CSV'de bir nesnenin içindeki dizi ne olur?

Sütunlara yayılmak yerine tek bir hücrede JSON metni olarak yazılır — dizilerin uzunluğu değişken olduğundan onlara ayrılacak sabit bir sütun sayısı yoktur. Tekil öğelere ihtiyacınız varsa o hücrenin içeriğini kopyalayıp ayrı ayrıştırın.

Yorumlar

Henüz yorum yok — ilk yorumu siz yazın!

Benzer Araçlar