Dil seç

CSV'den JSON'a Dönüştürücü

CSV verinizi başlık satırını anahtar yaparak JSON dizisine çevirin; virgül, noktalı virgül ve sekme ayıracı ile tırnaklı alanlar desteklenir.

Mehmet Demiray Yayınlandı Güncellendi
Paylaş
CSV'nizdeki değerleri ayıran karakter
İlk satırı sütun adları olarak kabul et
Sayıları ve true/false değerlerini metin olarak tutmak yerine dönüştür
Girdideki boş satırları yoksay
JSON çıktısını biçimlendirmek için kullanılan boşluk miktarı

CSV ve JSON: İki Farklı Veri Modeli

CSV, veriyi satır ve sütunlardan oluşan düz bir tablo olarak tutar; e-tablolardan ve veritabanı dışa aktarımlarından tanıdığınız biçimdir. JSON ise iç içe geçebilen nesneler ve dizilerle hiyerarşik yapı kurar; web uygulamalarının ve API'lerin ortak dili budur.

Bu iki model tam örtüşmez. CSV'de her kayıt aynı sütunlara sahiptir ve tüm değerler tek düzlemde durur; JSON'da bir alan başka bir nesneyi, hatta bir listeyi barındırabilir. Bu yüzden dönüşümün doğal yönü tablodan nesneye doğrudur: her CSV satırı, sütun başlıklarını anahtar olarak kullanan bir JSON nesnesine dönüşür.

CSV kaynağı JSON karşılığı
Başlık satırı Nesne anahtarları
Veri satırı Bir nesne
Tüm dosya Nesne dizisi

Örneğin ad;sehir başlıklı bir dosyadaki Ayşe;İzmir satırı, çıktıda {"ad":"Ayşe","sehir":"İzmir"} nesnesine dönüşür.

CSV'den JSON'a Dönüştürücü bu eşlemeyi otomatik kurar ve tablo verinizi web uygulamanızın, betiğinizin veya API'nizin doğrudan işleyebileceği yapılandırılmış biçime taşır. Ters yönde, elinizdeki JSON diziyi e-tabloda açılabilir bir tabloya çevirmek isterseniz JSON'dan CSV'ye dönüştürücü kullanılır.

Dönüştürücü CSV'nizi Nasıl Okur

Dönüşümün ilk adımı ayıracı belirlemektir. Adındaki virgüle rağmen gerçek dünyadaki CSV dosyaları virgül, noktalı virgül veya sekme ile ayrılmış olabilir. Araç yaygın ayıraçları destekler; dosyanıza uyanı seçmeniz veya otomatik algılamaya bırakmanız yeterlidir.

İkinci adım başlık satırıdır. İlk satır sütun adlarını içeriyorsa bu adlar JSON anahtarlarına dönüşür ve her veri satırı bir nesne olur. Başlık yoksa araç sütunlara konum bazlı adlar üretir ya da satırları düz dizi olarak çıkarır.

Üçüncü adım alanların çözümlenmesidir. Tırnak içine alınmış alanlar, içlerinde ayıraç veya satır sonu barındırsa bile tek değer olarak okunur. Tırnak içinde tırnak, ikilenerek gösterilir; araç bu kaçışları açarak özgün metni geri kazanır.

Son adım çıktı biçimidir:

  1. Standart mod tüm kayıtları tek bir JSON dizisinde toplar; çoğu API ve kütüphane bu biçimi bekler.
  2. NDJSON modu her kaydı kendi satırına ayrı bir JSON nesnesi olarak yazar; akış işleme ve büyük veri hatlarında tercih edilir.

Dönüşüm tamamen tarayıcınızda çalışır; müşteri listesi gibi hassas veriler içeren dosyalar hiçbir sunucuya gönderilmez. Çıktıyı kopyalamadan önce JSON biçimlendirici ile girintileyerek yapıyı gözle de doğrulayabilirsiniz.

Türkçe Excel ve Noktalı Virgül Meselesi

Türkiye'de kaydedilen CSV dosyalarının çoğu aslında virgülle değil noktalı virgülle ayrılmıştır. Bunun nedeni bölgesel ayarlardır: Türkçe sayı biçiminde ondalık ayıracı virgüldür, 3,5 değeri 3,5 diye yazılır. Excel, virgülü sayıların içinde kullandığı için alan ayıracı olarak noktalı virgülü seçer.

Bu ayrıntıyı bilmeyen biri, Türkçe Excel'den kaydettiği dosyayı virgül bekleyen bir araca verdiğinde tüm satırın tek sütun olarak okunduğunu görür. Dönüştürücüde ayıracı noktalı virgül olarak seçmek ya da otomatik algılamaya bırakmak sorunu çözer.

Ondalık virgül, sayı alanlarında da dikkat ister. fiyat sütununda 12,90 yazıyorsa bu değer JSON'a "12,90" biçiminde, yani dize olarak taşınır; çünkü JSON sayıları nokta ayıracı kullanır. Veriyi sayısal işleyecekseniz iki seçeneğiniz var: dışa aktarmadan önce e-tabloda sayı biçimini nokta ayıraçlı hale getirmek ya da dönüşümden sonra kodunuzda virgülü noktaya çevirmek.

Bir de karakter kodlaması var. Eski Excel sürümleri CSV'yi Windows-1254 kodlamasıyla kaydedebilir; ş, ğ, ı gibi harfler başka araçlarda bozuk görünür. Dosyayı UTF-8 olarak kaydetmek, Türkçe karakterlerin her ortamda doğru okunmasını garantiler. Excel'in kaydetme menüsündeki UTF-8 CSV seçeneği tam bu iş içindir.

Tırnaklı Alanlar ve Çok Satırlı Değerler

CSV'nin görünürdeki basitliği, alanların içinde özel karakterler belirdiğinde bozulur. Bir adres alanında virgül, bir açıklama alanında satır sonu olabilir; bu durumlar için standart çözüm alanı çift tırnağa almaktır.

RFC 4180 kuralları özetle şöyledir:

  • Ayıraç, tırnak veya satır sonu içeren alan çift tırnağa alınır.
  • Alanın içindeki çift tırnak, iki tırnak yazılarak kaçışlanır: "Osman ""Usta"" Yılmaz".
  • Tırnaklı alan içindeki satır sonları veriye dahildir; kayıt, kapanış tırnağından sonra biter.

Dönüştürücü bu kuralları tam uygular. Çok satırlı bir açıklama, JSON çıktısında \n kaçışlarıyla tek dize olarak görünür; iki tırnakla kaçışlanmış işaretler tek tırnağa indirilir. Elle yazılmış ve kurallara tam uymayan dosyalarda ise sorun çıkabilir: kapanmamış bir tırnak, sonraki kayıtların tamamının tek alana yapışmasına yol açar. Böyle bir durumda çıktıda satır sayısının beklenenden az olduğunu görürsünüz; kaynak dosyada tek sayıda tırnak içeren alanı bulup düzeltmek gerekir.

Sağlam bir kontrol yöntemi şudur: dönüşümden sonra kayıt sayısını kaynak dosyanın satır sayısıyla karşılaştırın. Çok satırlı alanlar nedeniyle birebir eşit olmayabilir; ama büyük bir fark, tırnak sorununun işaretidir. Aynı tabloyu XML tabanlı bir sistemden alıyorsanız dosyayı önce XML'den JSON'a dönüştürücü ile çevirip bu sorunları tümden atlayabilirsiniz.

JSON Dizisi mi NDJSON mu

Aracın iki çıktı modu vardır ve seçim, veriyi nasıl tüketeceğinize bağlıdır.

Standart JSON dizisi, tüm kayıtları köşeli parantez içinde tek belge olarak toplar. Web uygulamaları, REST API'leri ve çoğu kütüphane bu biçimi doğrudan işler. Belge bir bütün olduğu için tamamı bellekte tutulur; on binlerce satırlık dosyalarda bile modern tarayıcılar bunu rahat kaldırır.

NDJSON, yani satır ayrımlı JSON, her kaydı kendi satırına bağımsız bir nesne olarak yazar. Bu biçimin gücü akış işlemede ortaya çıkar: bir betik dosyayı satır satır okuyup her kaydı geldiği anda işleyebilir, belgenin tamamının yüklenmesini beklemez. Log toplama araçları, veri ambarı yükleme işleri ve büyük veri hatları bu yüzden NDJSON ile çalışır.

Karar için pratik bir kılavuz:

İhtiyaç Uygun biçim
API gövdesi, ön yüz verisi JSON dizisi
Satır satır işleme, akış NDJSON
Veritabanına toplu yükleme Hedefin belgelediği biçim
Küçük yapılandırma verisi JSON dizisi

Kararsızsanız JSON dizisiyle başlayın; en geniş araç yelpazesi onu destekler. Elinizdeki tablo YAML tabanlı bir yapılandırmaya dönüşecekse, çıktıyı önce JSON olarak alıp YAML'dan JSON'a dönüştürücünün ters yönlü kardeşiyle sürdürmek yerine doğrudan JSON çıktısı üzerinde çalışmak çoğu zaman yeterlidir.

Günlük İşlerde Nerelerde Kullanılır

CSV'den JSON'a dönüşüm, tablo dünyası ile uygulama dünyası arasındaki en işlek köprüdür; birkaç somut örnek şöyledir.

E-tablodan uygulamaya veri taşıma: Ürün listesi, personel tablosu veya fiyat kataloğu genellikle Excel'de tutulur. Web uygulamanız bu veriyi JSON olarak bekliyorsa dosyayı dışa aktarıp dönüştürmek, elle veri girmekten kat kat hızlıdır.

Veritabanı dışa aktarımlarını API'ye hazırlama: Birçok yönetim paneli ve rapor aracı sonuçları CSV verir. Bu çıktıyı bir REST servisine göndermeden veya bir test ortamına yüklemeden önce JSON'a çevirmek gerekir.

Hızlı prototipleme: Ön yüz geliştirirken gerçekçi örnek veri lazım olduğunda, e-tabloda birkaç dakikada hazırlanan tablo, dönüştürücüyle anında kullanılabilir sahte API yanıtına dönüşür.

Veri temizliği ve inceleme: Karmaşık bir CSV'nin yapısını anlamanın iyi bir yolu, onu JSON'a çevirip anahtarlarıyla görmektir; hangi sütunun boş geldiği, hangi alanın beklenmedik değer taşıdığı nesne gösteriminde daha kolay fark edilir.

Akışın devamında işiniz bitmiş olmaz: çıktıyı doğrulamak ve okunaklı girintiyle görmek için JSON biçimlendirici pratik bir sonraki adımdır. Ters yönde, uygulamanızdan aldığınız JSON'u muhasebeye veya rapora e-tablo olarak vermek gerektiğinde JSON'dan CSV'ye dönüştürücü döngüyü tamamlar.

En çok yanıtladıklarımız.

Excel dosyamı JSON'a nasıl çeviririm?

Excel'de dosyanızı CSV UTF-8 biçiminde kaydedin, ardından içeriği dönüştürücüye yapıştırın veya dosyayı yükleyin. Türkçe Excel noktalı virgül kullandığı için ayıraç seçiminde noktalı virgülü işaretlemeniz ya da otomatik algılamaya bırakmanız yeterlidir.

İlk satırım sütun başlığı değilse ne olur?

Başlık satırı seçeneğini kapatabilirsiniz. Bu durumda araç kayıtları anahtarsız diziler olarak çıkarır veya sütunlara konum bazlı adlar üretir. Başlıklı mod, anahtarlı nesneler ürettiği için sonraki işlemler açısından genellikle daha kullanışlıdır.

Sayılar JSON çıktısında metin olarak mı kalır?

Nokta ayıraçlı düz sayılar sayı türüne çevrilebilir; 12,90 gibi ondalık virgüllü Türkçe yazımlar ise JSON sayı kurallarına uymadığından dize olarak taşınır. Veriyi sayısal işleyecekseniz kaynakta nokta ayıracı kullanın veya dönüşümden sonra virgülleri kodunuzda çevirin.

Türkçe karakterler neden bozuk görünüyor?

Sorun neredeyse her zaman karakter kodlamasıdır. Eski Excel sürümleri CSV'yi Windows-1254 ile kaydeder; ş, ğ, ı gibi harfler UTF-8 bekleyen araçlarda bozulur. Dosyayı Excel'in CSV UTF-8 seçeneğiyle yeniden kaydetmek sorunu kalıcı olarak çözer.

Verilerim sunucuya yükleniyor mu?

Hayır. Dönüşüm tamamen tarayıcınızda gerçekleşir; dosyanız hiçbir sunucuya gönderilmez. Müşteri listeleri veya personel tabloları gibi kişisel veri içeren dosyaları da bu yüzden güvenle çevirebilirsiniz.

NDJSON çıktısını ne zaman seçmeliyim?

Veriyi satır satır işleyen bir araca, log hattına veya veri ambarı yükleyicisine veriyorsanız NDJSON uygundur; her satır bağımsız bir JSON nesnesidir ve akış halinde işlenebilir. Web uygulaması veya API için standart JSON dizisi doğru seçimdir.

Dönüşüm kayıpsız mı, CSV'ye geri dönebilir miyim?

Hücre değerleri ve satır yapısı birebir korunur; başlıklar anahtar olarak taşındığından JSON'dan CSV'ye dönüştürücü ile aynı tabloya geri dönebilirsiniz. Yalnızca biçimsel ayrıntılar, örneğin sütun genişlikleri veya hücre renkleri gibi e-tabloya özgü özellikler CSV'de zaten bulunmadığı için söz konusu değildir.