Her Yazılımcının Yaptığı 25 JSON Hatası

JSON, web iletişiminin bel kemiğidir. Hafiftir ve okunması kolaydır. Ancak kuralları katıdır. Küçük hatalar kodunuzu bozar.

Daha iyi veri yapıları yazmak için bu yaygın hatalardan kaçının.

Sözdizimi Hataları

  • Sadece çift tırnak kullanın. Tek tırnak JavaScript'te çalışır ancak JSON'da hata verir.
  • Sondaki virgülleri kaldırın. Son öğeden sonra gelen bir virgül çökme neden olur.
  • Eksik virgülleri ekleyin. Her anahtar-değer çifti arasında bir virgül olmalıdır.
  • Tüm anahtarları tırnak içine alın. Her anahtarın etrafında çift tırnak olmalıdır.
  • Parantezlerinizi eşleştirin. Köşeli parantez gereken yerlerde süslü parantez kullanmayın.

Veri Tipi Hataları

  • undefined değerlerini yönetin. JSON, undefined değerini desteklemez. Bunun yerine null kullanın.
  • NaN ve Infinity değerlerinden kaçının. Bu değerler serileştirme sırasında null değerine dönüşür.
  • Tarih formatlarını unutmayın. JSON, tarihleri dize (string) olarak işler. Bunları tekrar Date nesnelerine ayrıştırmanız (parse) gerekir.
  • Onluk taban (base-10) sayılar kullanın. Onaltılık (hex) veya sekizlik (octal) formatları kullanmayın.
  • Fonksiyonları saklamayın. JSON yalnızca statik veriler içindir.
  • Yorum satırlarından kaçının. JSON, // veya /* */ yorumlarına izin vermez.
  • Çift tırnakları kaçış karakteriyle (escape) belirtin. Bir dize içinde tırnak kullanmak için ters eğik çizgi (\) kullanın.
  • Yeni satırlar için \n kullanın. Bir dize değeri içinde "enter" tuşuna basamazsınız.
  • Ters eğik çizgileri kaçış karakteriyle belirtin. Yollar veya regex desenleri için \\ kullanın.

Ortam ve Mantık Hataları

  • Girdinizi kontrol edin. JSON.parse() fonksiyonuna bir nesne (object) göndermeyin.
  • Büyük/küçük harf kullanımına dikkat edin. "userId" ve "userid" farklı anahtarlardır.
  • Sıralamaya güvenmeyin. JSON, anahtarların sırasını garanti etmez.
  • Asla eval() kullanmayın. Güvenlik risklerini önlemek için JSON.parse() kullanın.
  • Büyük sayıları koruyun. Hassasiyet kaybını önlemek için 64-bit kimlikleri (ID) dize (string) olarak gönderin.
  • try...catch blokları kullanın. Hataları yakalamazsanız geçersiz JSON uygulamanızın çökmesine neden olur.
  • Döngüsel referansları (circular references) düzeltin. Kendine işaret eden bir nesneyi dizeye dönüştüremezsiniz (stringify).
  • Farkı bilin. JSON, standart bir JavaScript nesnesinden daha kısıtlayıcıdır.
  • Boş dizelerden kaçının. "" yerine {} veya [] kullanın.

Güvende kalmak için:

  • Sözdiziminizi kontrol etmek için bir doğrulayıcı (validator) kullanın.
  • Dosyaları otomatik olarak biçimlendirmek için editörünüzde Prettier kullanın.
  • Ayrıştırma (parsing) mantığını her zaman bir try...catch bloğu içine alın.

Kaynak: https://dev.to/jsdevspace/25-json-mistakes-every-developer-makes-36e6