JSON (JavaScript Object Notation), verileri yapılandırılmış bir şekilde saklamak ve iletmek için kullanılan hafif bir veri formatıdır. Douglas Crockford tarafından popülerleştirilen JSON, adında JavaScript geçmesine rağmen dilden bağımsızdır ve hemen hemen tüm programlama dillerinde desteklenir. Günümüzde API'ler, yapılandırma dosyaları ve veri depolama için en yaygın kullanılan format haline gelmiştir.
JSON Söz Dizimi
JSON, anahtar-değer çiftlerinden oluşan basit ve okunabilir bir yapıya sahiptir:
{
"isim": "Fatih",
"yas": 28,
"aktif": true,
"adres": {
"sehir": "İstanbul",
"ulke": "Türkiye"
},
"hobiler": ["yazılım", "fotoğraf", "yüzme"],
"ehliyet": null
}
JSON'un temel kuralları şunlardır:
- Anahtarlar mutlaka çift tırnak (
") içinde olmalıdır — tek tırnak geçersizdir - Değerler: string, number, boolean, null, object veya array olabilir
- Son öğeden sonra virgül (trailing comma) kullanılamaz
- Yorum satırları desteklenmez
JSON Veri Tipleri
JSON altı temel veri tipini destekler:
1. String (Metin)
Çift tırnak içinde yazılır. Escape karakterleri desteklenir:
"mesaj": "Merhaba "Dünya"\nYeni satır"
2. Number (Sayı)
Tam sayı ve ondalık sayılar desteklenir. Tırnak içinde yazılmaz:
"tam_sayi": 42,
"ondalik": 3.14,
"negatif": -10,
"bilimsel": 2.5e10
3. Boolean
Yalnızca true veya false değerlerini alır (küçük harfle):
"aktif": true,
"silindi": false
4. Null
Değer olmadığını belirtir:
"telefon": null
5. Object (Nesne)
Süslü parantez içinde anahtar-değer çiftleri:
"kullanici": {
"id": 1,
"isim": "Ali"
}
6. Array (Dizi)
Köşeli parantez içinde sıralı değer listesi:
"renkler": ["kırmızı", "yeşil", "mavi"],
"sayilar": [1, 2, 3],
"karisik": [1, "iki", true, null]
JSON ile Çalışma: JavaScript Örnekleri
// JavaScript nesnesinden JSON string'e dönüştürme
const kullanici = { isim: "Ayşe", yas: 25 };
const jsonStr = JSON.stringify(kullanici);
// '{"isim":"Ayşe","yas":25}'
// Güzel formatlama
const formatli = JSON.stringify(kullanici, null, 2);
// JSON string'den JavaScript nesnesine dönüştürme
const veri = JSON.parse('{"isim":"Ayşe","yas":25}');
console.log(veri.isim); // "Ayşe"
// Hatalı JSON parse etmeye çalışmak
try {
JSON.parse('{hatalı json}');
} catch (e) {
console.error("JSON hatası:", e.message);
}
Yaygın JSON Hataları
- Tek tırnak kullanımı:
{'isim': 'Ali'}geçersizdir. Çift tırnak kullanılmalıdır. - Son virgül:
{"a": 1, "b": 2,}— sondaki virgül JSON'da geçersizdir. - Yorum satırı: JSON'da
// yorumveya/* yorum */kullanılamaz. - Tırnaksız anahtarlar:
{isim: "Ali"}geçersizdir. - Undefined değeri: JSON'da
undefinedgeçerli bir değer değildir. - Fonksiyon değerleri: JSON'da fonksiyonlar saklanamaz.
JSON ve XML Karşılaştırması
JSON ve XML her ikisi de veri alışverişi için kullanılsa da önemli farklar vardır:
- Okunabilirlik: JSON daha kısa ve okunabilirdir
- Dosya boyutu: JSON, XML'e göre genellikle %30-50 daha küçüktür
- Parse hızı: JSON parse etmek XML'den çok daha hızlıdır
- Şema desteği: XML daha güçlü şema doğrulama araçlarına sahiptir (XSD)
- Öznitelikler: XML öznitelik desteklerken, JSON yalnızca anahtar-değer çiftleri kullanır
JSON Formatlayıcı Aracını Kullanın
Karmaşık JSON verilerini düzenlemek, doğrulamak ve güzel formatlamak için JSON Formatter aracımızı kullanabilirsiniz. Söz dizimi hatalarını anında tespit eder, ağaç görünümünde veriyi keşfetmenize olanak tanır ve tek tıkla kopyalama imkânı sunar.
Bu konuyla ilgili araçlarımızı da deneyin: JSON Formatter, Regex Test Aracı, cURL Builder