| Tür | Örnek | Not |
|---|---|---|
| object | { "id": 7 } | Çift tırnaklı anahtar/değer. |
| array | ["a", "b"] | Sıralı değer listesi. |
| string | "merhaba" | Çift tırnaklı metin. |
| number | 12.5 | NaN/Infinity standart değer değildir. |
| boolean | true / false | Küçük harfle yazılır. |
| null | null | Bilerek boş değer. |
Geçerli nesne
Nesne süslü, dizi köşeli parantez kullanır. Anahtar çift tırnaklı, alan ayıracı iki nokta, çiftler arası ayraç virgüldür.
JSON yorum, undefined, fonksiyon veya tarih nesnesi içermez. Tarihler çoğunlukla metin olarak taşınır.
Escape dizileri
Dizelerde tırnak, ters eğik çizgi ve kontrol karakterleri kaçırılır. Yeni satır için \n kullanılır; Unicode kaçışları \uXXXX olabilir.
JSON’u JavaScript string içine koyarsanız iki dilin kaçış kuralları üst üste gelir; parser ile doğrulayın.
Sözdizimi ve şema
Parser sözdizimini denetler. Zorunlu alan ve tipler için JSON Schema veya uygulama doğrulaması gerekir.
İmza oluşturma gibi durumlarda anahtar sırası ve normalize kuralını belirleyin.
Sayılar ve taşınabilirlik
JSON sayı sözdizimi ondalık biçimleri destekler; NaN ve Infinity geçerli JSON değerleri değildir. Farklı programlama dilleri büyük tam sayıları farklı hassasiyetle temsil edebilir.
Kimlik numarası veya hassas büyük sayı taşıyorsanız API sözleşmesinin bunu sayı mı yoksa metin mi olarak tanımladığını kontrol edin. Aynı nesnede yinelenen anahtar kullanmaktan kaçının; ayrıştırıcılar bu durumu farklı ele alabilir.
API yanıtını doğrulama sırası
Önce HTTP yanıtının başarılı olup olmadığını kontrol edin, sonra gövdeyi JSON olarak ayrıştırın ve son olarak beklenen alanları ve tipleri doğrulayın. Geçerli JSON, uygulamanızın beklediği veriyi içerdiğini tek başına kanıtlamaz.
Eksik, null veya yeni eklenmiş alanlara karşı uygulamanın davranışını tasarlayın. Bilinmeyen alanları tolere etmek API sürümleri arasında uyumu kolaylaştırabilir; güvenlik ve iş kuralları ayrıca doğrulanmalıdır.