İçeriğe geç
ConvertOwl
Formatlar5 dakikalık okumaYazan ConvertOwl

CSV mi JSON mu? Hangisini Ne Zaman Kullanmalısınız?

CSV ve JSON'un sade bir karşılaştırması: yapı, okunabilirlik ve verileriniz için hangisinin doğru seçim olduğu.

Gece gökyüzü altında bir CSV tablosu ile bir JSON kod dosyası arasında duran, hangisini seçeceğini tartan piksel sanatı baykuş

Bir raporu dışa aktarıyorsunuz ve dosya .csv olarak geliyor. Bir API'ye istek atıyorsunuz ve yanıt .json olarak dönüyor. İkisi de sadece veri tutan metin dosyaları, peki neden bu kadar farklı görünüyorlar ve hangisiyle çalıştığınız neden önemli? Kısa cevap şu: CSV düz bir tablodur, JSON ise bir ağaç yapısıdır ve bu tek yapısal fark, ikisi arasındaki tercihte hemen hemen her şeyi belirler.

Elinizde zaten dosya varsa ve sadece diğer formata çevirmeniz gerekiyorsa, CSV'den JSON'a çevirici ve JSON'dan CSV'ye çevirici araçlarımız dönüşümü tarayıcınızda anında yapar, herhangi bir yükleme gerekmez. Bu yazı, bu tercihin arkasındaki "neden"i anlatıyor.

CSV aslında nedir?#

CSV (virgülle ayrılmış değerler), satır ve sütunlardan başka bir şey değildir. Her satır bir kayıttır, her virgül bir alanı ayırır ve ilk satır genellikle her sütunu adlandıran bir başlıktır:

name,age,city
Alice,29,Boston
Bob,34,Denver

Formatın tamamı bu kadar. Bir kaydı diğerinin içine yerleştirmenin bir yolu yoktur, "bu alan aslında üç şeyden oluşan bir liste" demenin standart bir yöntemi yoktur ve bir değerin türünü belirtmenin standart bir yolu da yoktur: 29 ile "29" birebir aynı görünür, bu yüzden her sistem bunun sayı mı yoksa metin mi olduğunu tahmin etmek zorunda kalır. CSV'nin gücü tam da bu basitliğin onu evrensel olarak okunabilir kılmasıdır: Excel, Google E-Tablolar, Numbers ve her veritabanının içe aktarma aracı, hiçbir kurulum yapmadan CSV'yi doğrudan tanır.

JSON aslında nedir?#

JSON (JavaScript Object Notation), verileri açık türlerle birlikte iç içe geçmiş nesneler ve diziler olarak temsil eder:

{
  "name": "Alice",
  "age": 29,
  "city": "Boston",
  "hobbies": ["reading", "hiking"]
}

Burada CSV'nin yapamadığı şeye dikkat edin: hobbies alanı, tek bir kaydın içinde bir liste; age alanı belirsizlik olmadan bir sayı; ve eğer street ile zip içeren bir address nesnesine ihtiyacınız olsaydı, JSON bunu doğal olarak iç içe geçirebilirdi. JSON'un API'ler için varsayılan format haline gelmesinin sebebi de bu: gerçek dünyadaki veriler (birden fazla telefon numarası olan bir kullanıcı, birden fazla ürün kalemi içeren bir sipariş) nadiren düzdür ve JSON bu yapıyı doğrudan tarif edebilir.

Temel değiş tokuş#

CSVJSON
YapıSadece düz satır ve sütunlarİç içe geçmiş nesneler ve diziler
Veri türleriYok, her şey metinMetin, sayı, boolean, null, dizi, nesne
İnsan tarafından okunabilirlikBir tabloda mükemmelKüçük dosyalarda iyi, büyük dosyalarda karmaşık
Açmak için en uygun araçExcel, Google E-TablolarBir kod düzenleyici veya JSON biçimlendirici
Tipik kaynağıVeritabanı dışa aktarımları, tablolar, analiz raporlarıAPI'ler, yapılandırma dosyaları, uygulama verileri
Aynı veri için dosya boyutuDaha küçük, alan adları tekrar etmezDaha büyük, her kayıt kendi alan adlarını tekrar eder

Son satır çoğu kişiyi şaşırtıyor: JSON her kayıtta "name":, "age": ve "city": gibi alan adlarını tekrar ettiği için, bir CSV ile aynı tabloyu tutan bir JSON dosyası genellikle %30 ila %50 daha büyük olur. Bu fazladan yer, size yapı ve tür bilgisi kazandırır; elinizde sadece düz bir tablo varsa, bu bedeli boşuna ödüyorsunuz demektir.

CSV ne zaman kullanılır?#

  • Dosyayı teknik olmayan birine veriyorsanız. Herkes bir CSV dosyasını Excel'de açıp anında anlayabilir; bir JSON dosyası ise çoğu insana sadece kod gibi görünür.
  • Veri gerçekten düzse. Bir müşteri listesi, bir satış raporu, bir envanter sayımı: tek kayıt, tek satır, iç içe geçme gerekmiyor.
  • Bir tabloya veya geleneksel bir veritabanı tablosuna aktarım yapıyorsanız. İkisi de tasarım gereği satır ve sütun araçlarıdır, CSV bunlara doğrudan uyar.
  • Dosya boyutu önemliyse ve veri basitse. Tekrar eden alan adı olmaması, aynı bilgi için daha küçük bir dosya demektir.

JSON ne zaman kullanılır?#

  • Verinin düzgün şekilde düzleşmeyen bir yapısı varsa. Birden fazla ürün kalemi olan bir sipariş, birden fazla adresi olan bir kullanıcı, iç içe bölümleri olan bir ayarlar dosyası.
  • Bir API ile çalışıyorsanız. Neredeyse her modern web API'si JSON gönderir ve alır; bu, formatın fiili standardıdır ve her şeyi zorla CSV'ye sıkıştırmaya çalışmak genellikle kazandırdığından daha fazla iş yaratır.
  • Türler programınız için önemliyse. Kodunuzun ekstra bir ayrıştırma yapmadan 29'un metin "29" değil bir sayı olduğunu bilmesi gerekiyorsa, JSON bu bilgiyi zaten taşır.
  • null değerine veya isteğe bağlı alanlara ihtiyacınız varsa. CSV'de "bu alan burada geçerli değil" demenin temiz bir yolu yoktur; JSON'da bu, yerleşik null ile çözülür.

İkisi arasında dönüştürme#

Hiçbir format evrensel olarak diğerinden üstün değildir, bu yüzden ikisi arasında ileri geri dönüştürmek bir çözüm değil, günlük bir iştir. Birkaç yaygın durum:

  • API yanıtını JSON olarak aldınız ama Excel'de açmanız mı gerekiyor? JSON'dan CSV'ye aracını kullanın. Derinlemesine iç içe geçmiş alanlar (bir nesnenin içindeki bir dizi) mümkün olduğunca düzleştirilir, bu yüzden bir seviyeden fazla iç içe geçen çıktıları kontrol edin.
  • Bir tabloyu CSV olarak dışa aktardınız ama JSON bekleyen bir uygulamaya beslemeniz mi gerekiyor? CSV'den JSON'a aracı, başlık satırınızı alan adı olarak kullanarak her satırı bir nesneye dönüştürür.
  • Sadece dağınık bir JSON dosyasını okumanız veya düzenlemeniz mi gerekiyor? JSON biçimlendirici, iç içe yapıyı tek bir satıra sıkışmış halde değil, gerçekten okunabilir hale getirmek için girintiler ekler ve doğrular.

Üç araç da tamamen tarayıcınızda çalışır: dönüştürülmüş dosyayı almadan önce verileriniz hiçbir sunucuya yüklenmez, bu da dosyanız bir müşteri listesiyse veya bir sunucudan uzak tutmak istediğiniz başka bir şeyse önemlidir.

Sık sorulan sorular#

JSON her zaman CSV'den daha mı iyidir? Hayır, JSON iç içe geçmiş veya türlü veriler için daha iyidir, ancak basit düz bir tablo için CSV daha küçüktür, bir tabloda açması daha kolaydır ve teknik araçlar olmadan herkes tarafından okunabilir.

Her CSV dosyası JSON'a sorunsuz dönüştürülebilir mi? Evet, çünkü düz bir tablo her zaman satır başına bir nesne olacak şekilde düz bir nesne listesine karşılık gelir ve başlık satırı alan adlarını sağlar.

Her JSON dosyası CSV'ye sorunsuz dönüştürülebilir mi? Her zaman değil: bir alanın içinde nesne veya dizi iç içe geçiren JSON'un satır ve sütunlara sığması için düzleştirilmesi veya basitleştirilmesi gerekir, bu yüzden bu işlem sırasında bazı yapılar kaybolabilir veya tek bir hücreye sıkıştırılabilir.

JSON dosyam neden eşdeğer CSV'den çok daha büyük? JSON, "name": gibi her alan adını her kayıtta tekrarlarken, CSV her sütun adını yalnızca başlık satırında bir kez belirtir, bu yüzden aynı tablo JSON olarak genellikle %30 ila %50 daha büyüktür.

API'ler gerçekte hangi formatı kullanıyor? Modern web API'lerinin büyük çoğunluğu varsayılan olarak JSON gönderir ve alır, çünkü JSON gerçek uygulamaların işlediği iç içe geçmiş, türlü verileri doğal olarak temsil eder.

Her iki dosyayı açmak için özel bir yazılıma ihtiyacım var mı? Hayır: CSV doğrudan Excel, Google E-Tablolar veya Numbers'da açılır, JSON ise herhangi bir metin düzenleyicide açılır, ancak büyük bir dosyayı okumayı çok daha kolaylaştıran özel bir JSON biçimlendirici işinize yarayacaktır.

Özetle#

  • CSV düz bir tablodur: satır ve sütunlar, iç içe geçme yok, tür yok, bir tabloda evrensel olarak okunabilir.
  • JSON iç içe geçmiş, türlü bir yapıdır: düzgün düzleşmeyen veriler için tasarlanmıştır ve API'ler için varsayılan formattır.
  • Hiçbir format "daha iyi" değildir, farklı veri şekilleri için tasarlanmışlardır, bu yüzden seçiminizi dosyayla sonrasında ne yapacağınıza göre yapın.
  • İkisi arasında dönüştürme yapmak günlük bir iştir: CSV'den JSON'a, JSON'dan CSV'ye veya JSON biçimlendirici araçlarını deneyin; hepsi ücretsizdir ve tarayıcınızda yerel olarak çalışır. Bu tür daha fazla format karşılaştırması için blogun dosya formatları bölümüne göz atabilirsiniz.

Araçları deneyin

Ücretsiz, gizli ve anında. Her şey tarayıcınızda çalışır.

Kamp ateşi başında, MKV dosyasının yüksek kalitesini ve çoklu codec desteğini, MP4'ün geniş uyumluluğu ve küçük boyutuyla karşılaştıran piksel sanatı baykuş
Formatlar5 dk

Hangi Video Formatı Daha Kaliteli?

MP4, MOV, WebM ve MKV gerçek görüntü kalitesi açısından karşılaştırıldı: codec, bit hızı ve çözünürlük, sadece uyumluluk değil.