İçeriğe geç
QuicknVert

JSON Nedir? Sözdizimi Kuralları, Sık Yapılan Hatalar ve Biçimlendirme

· 6 dk okuma

JSON veri formatının temel kuralları, en sık karşılaşılan sözdizimi hataları ve JSON'u okunur hâle getirmenin, doğrulamanın ve küçültmenin yolları.

JSON kısaca nedir?

JSON (JavaScript Object Notation), verileri anahtar–değer çiftleri ve diziler hâlinde metin olarak ifade eden hafif bir veri değişim formatıdır. Adında JavaScript geçse de bugün neredeyse tüm programlama dilleri JSON okuyup yazabilir; REST API'lerin büyük çoğunluğu istek ve yanıtlarında JSON kullanır.

Bir JSON belgesi altı veri tipinden oluşabilir: nesne ({ }), dizi ([ ]), metin ("çift tırnaklı"), sayı, true/false ve null. Tarih, tanımsız (undefined) veya fonksiyon gibi tipler JSON'da yoktur; tarihler genellikle ISO 8601 biçiminde metin olarak saklanır.

{
  "siparisNo": 10482,
  "musteri": { "ad": "Ayşe", "sehir": "İzmir" },
  "urunler": ["klavye", "mouse"],
  "teslimEdildi": false,
  "not": null
}

En sık yapılan JSON hataları

JSON, JavaScript nesne sözdizimine benzediği için geliştiriciler çoğu zaman JavaScript'te geçerli olan ama JSON'da geçersiz olan yapılar kullanır. Ayrıştırıcı bu durumda tüm belgeyi reddeder.

  • Son öğeden sonra virgül bırakmak: {"a": 1,} geçersizdir.
  • Anahtarları tırnaksız yazmak: {ad: "Ali"} geçersizdir; anahtarlar her zaman çift tırnak içinde olmalıdır.
  • Tek tırnak kullanmak: 'metin' yerine "metin" yazılmalıdır.
  • Yorum eklemek: // veya /* */ yorumları standart JSON'da yoktur.
  • Sayıları başında sıfırla yazmak: 007 geçersizdir; NaN ve Infinity de JSON'da kullanılamaz.
  • Metin içindeki çift tırnağı kaçırmamak: "O \"özel\" bir gün" şeklinde ters eğik çizgi gerekir.

JSON'u okunur hâle getirmek (biçimlendirme)

API'lerden gelen JSON genellikle tek satırdır; boyut küçük olsun diye tüm boşluklar kaldırılmıştır. İç içe geçmiş bir yapıyı bu hâliyle okumak neredeyse imkânsızdır. Biçimlendirme (pretty print), veriyi değiştirmeden her seviyeyi girintileyerek yapıyı görünür kılar.

JSON Biçimlendirici aracımız bunu tarayıcınızda yapar ve hatalı bir JSON'da hatanın satır ve sütununu gösterir. Anahtarları alfabetik sıralama seçeneği, iki JSON'u karşılaştırmadan önce sıralama farklarını ortadan kaldırmak için kullanışlıdır.

Doğrulama ve küçültme ne zaman gerekir?

Bir yapılandırma dosyasını sunucuya göndermeden veya bir API isteğinin gövdesini hazırlarken JSON'un geçerli olduğundan emin olmak, “neden çalışmıyor?” sorusuna harcanacak zamanı azaltır. Doğrulayıcı yalnızca sözdizimini kontrol eder; verinin belirli bir şemaya uyup uymadığını görmek için JSON Schema gibi ayrı bir doğrulama gerekir.

Küçültme (minify) ise tam tersini yapar: okunabilirlik için eklenen boşlukları kaldırarak boyutu küçültür. Ağ üzerinden sık gönderilen veya bir ortam değişkenine yazılacak JSON'lar için uygundur.

JSON'dan koda: tip tanımları üretmek

Yeni bir API ile çalışırken yanıtın yapısını TypeScript interface'i veya C# sınıfı olarak elle yazmak hem zaman alır hem de hataya açıktır. Örnek bir yanıtı JSON'dan TypeScript'e veya JSON'dan C#'a dönüştürücülere yapıştırarak tip tanımlarını saniyeler içinde üretebilir, ardından isimlendirme ve isteğe bağlı alanları ihtiyacınıza göre düzenleyebilirsiniz.

Bu yazıyla ilgili araçlar

JSON Biçimlendirici

Sıkışık JSON'u girintili, okunabilir hâle getirin ve hataları satır numarasıyla görün.

JSON Doğrulayıcı

JSON'un geçerli olup olmadığını kontrol edin; hata konumu ve yapı istatistiklerini görün.

JSON Küçültücü

JSON'daki gereksiz boşluk ve satır sonlarını kaldırarak boyutunu küçültün.

JSON'dan TypeScript'e Dönüştürücü

Örnek JSON'dan TypeScript interface tanımlarını otomatik olarak üretin.