JSON (JavaScript Object Notation), veriyi hem insanın okuyabileceği hem yazılımın işleyebileceği biçimde yazar. Adı JavaScript'ten gelse de dilden bağımsızdır. RFC 8259 ile standartlaştırılmıştır. REST API'lerin büyük çoğunluğu JSON ile veri alışverişi yapar.
Yapı taşları
| Tür | Ne işe yarar | Örnek değer |
|---|---|---|
| Nesne | Ad-değer çiftlerini süslü parantez içinde tutar | Bir ürünün alanları |
| Dizi | Sıralı liste, köşeli parantez içinde | Siparişteki ürün satırları |
| Metin | Çift tırnak içinde | Ürün barkodu |
| Sayı | Tırnaksız | Stok adedi, fiyat |
| Mantıksal | true ya da false | Ürün satışta mı |
| Boş | null | Değer yok |
Gerçek bir gövde
Saystok'un Trendyol'a stok güncellemesi için gönderdiği gövde, items adlı bir dizidir. Dizideki her nesnede iki alan bulunur:
| Alan | Tür | Örnek |
|---|---|---|
| barcode | Metin | BARKOD_123 |
| quantity | Sayı | 12 |
Trendyol yanıtta batchRequestId alanı olan bir nesne döndürür. Sonuç sorgusunda her öğe için status alanı gelir; başarısız öğelerde failureReasons listesi hata nedenlerini taşır.
XML ile farkı
| Konu | JSON | XML |
|---|---|---|
| Okunabilirlik | Kısa ve sade | Açılış ve kapanış etiketleriyle uzun |
| Kullanım | Modern REST API'ler | SOAP servisleri, ürün beslemeleri, e-Fatura (UBL-TR) |
| Veri türü | Sayı, metin, mantıksal ayrımı vardır | Her şey metindir; tür şemayla belirlenir |
Sık yapılan hatalar
- Sayıyı tırnak içinde göndermek: "12" metindir, 12 sayıdır. Bazı API'ler metin olarak gelen sayıyı reddeder.
- Ondalık ayırıcı olarak virgül kullanmak. JSON'da ondalık ayırıcı noktadır: 149.90.
- Son öğeden sonra fazladan virgül bırakmak; standart JSON bunu kabul etmez.
- Türkçe karakterleri yanlış kodlamak. RFC 8259'a göre sistemler arası JSON, UTF-8 ile kodlanmalıdır.
- Barkodu sayı olarak göndermek. Baştaki sıfırlar kaybolur; barkodu her zaman metin olarak taşıyın.
Daha fazla bağlam için API ve REST API maddelerine bakın.


