JSON Nedir? Yeni Başlayanlar İçin Kapsamlı Bir Rehber
JSON Nedir?
JSON (JavaScript Object Notation — JavaScript Nesne Gösterimi), insanlar tarafından okunması ve yazılması, makineler tarafından ise ayrıştırılması ve oluşturulması kolay olacak şekilde tasarlanmış hafif, metin tabanlı bir veri değişim formatıdır. Başlangıçta JavaScript nesne değişmez sözdiziminden türetilmiştir, ancak o zamandan beri neredeyse tüm programlama dilleri tarafından desteklenen dilden bağımsız bir standart haline gelmiştir.
Günümüzde JSON, web'de veri alışverişi için baskın formattır. REST API'lerini, yapılandırma dosyalarını, NoSQL veritabanlarını, mobil uygulama iletişimini ve sayısız diğer veri odaklı sistemi destekler. Basitliği ve yaygınlığı, onu dünya çapındaki geliştiriciler için varsayılan seçenek haline getirmiştir.
JSON Sözdizimi Kuralları
JSON, katı ve minimal bir sözdizimi kuralları kümesini takip eder:
- Veriler anahtar/değer çiftleri halinde yapılandırılır
- Tüm anahtarlar çift tırnaklı dizeler olmalıdır (tek tırnak kullanılamaz)
- Anahtar/değer çiftleri iki nokta (
:) ile ayrılır - Çiftler virgül (
,) ile ayrılır - Süslü parantezler
{}nesneleri kapsar - Köşeli parantezler
[]dizileri kapsar - Sondaki virgüllere izin verilmez
- Katı JSON'da yorumlara izin verilmez
Geçerli JSON Örneği
{
"name": "Jane Smith",
"age": 28,
"isEmployed": true,
"skills": ["JavaScript", "Python", "SQL"],
"address": {
"street": "123 Main Street",
"city": "San Francisco",
"zipCode": "94102"
},
"phoneNumbers": null
}
Geçersiz JSON Örnekleri
Sondaki virgül (geçersiz):
{
"name": "Jane",
"age": 28,
}
Tek tırnaklı anahtar (geçersiz):
{ 'name': 'Jane' }
Anahtarda eksik tırnak (geçersiz):
{ name: "Jane" }
JSON Veri Türleri
JSON tam olarak altı veri türünü destekler:
| Tür | Açıklama | Örnek |
|------|-------------|---------|
| String | Çift tırnaklı Unicode metin | "Merhaba, dünya!" |
| Number | Tamsayı veya kayan noktalı | 42, 3.14, -7, 1.5e10 |
| Boolean | Mantıksal doğru veya yanlış | true, false |
| Null | Kasıtlı boş değer | null |
| Object | Sırasız anahtar/değer koleksiyonu | {"key": "value"} |
| Array | Sıralı değer listesi | [1, 2, 3] |
Dikkat çekici şekilde eksik olanlar: tarihler, zaman damgaları, ikili veri, undefined ve fonksiyonların yerel bir JSON temsili yoktur. Tarihler genellikle ISO 8601 dizeleri olarak kural gereği saklanır.
JSON ve Diğer Veri Formatları
JSON, her biri ödünleşimlere sahip diğer birkaç veri değişim formatıyla yan yana durur:
- JSON vs XML: JSON daha özlüdür ve ayrıştırılması daha hızlıdır. XML, öznitelikleri, ad alanlarını ve şemaları (XSD) destekler ancak önemli ölçüde daha ayrıntılıdır.
- JSON vs YAML: YAML, yorum desteğiyle yapılandırma dosyaları için daha insan tarafından okunabilirdir, ancak girintiye duyarlı sözdizimi hataya açık olabilir. JSON daha taşınabilirdir ve daha katı doğrulamaya sahiptir.
- JSON vs CSV: CSV yalnızca düz ve tablosaldır. JSON iç içe hiyerarşileri ve karışık veri türlerini destekler.
- JSON vs Protocol Buffers: Protobuf, makineden makineye iletişim için daha küçük ve daha hızlıdır ancak bir şema tanımı gerektirir ve insan tarafından okunabilir değildir.
JSON Neden Web API'lerinde Baskındır
JSON'un web API tasarımındaki baskınlığını birkaç faktör açıklar:
- Dil yaygınlığı — Her büyük dil, yerel veya iyi bakımlı bir JSON ayrıştırıcısına sahiptir, bu da entegrasyon sürtünmesini ortadan kaldırır.
- Tarayıcı yerel desteği — JavaScript'in
JSON.parse()veJSON.stringify()fonksiyonları, JSON'u web uygulamaları için doğal seçim haline getirir. - Minimal bant genişliği — JSON'un hafif sözdizimi, XML'den daha küçük yükler üreterek gecikmeyi ve bant genişliği maliyetlerini azaltır.
- İnsan tarafından okunabilirlik — Geliştiriciler, özel araçlar olmadan JSON verilerini inceleyebilir, hata ayıklayabilir ve elle yazabilir.
- Esnek şema — XML Schema veya Protocol Buffers gibi katı formatların aksine, JSON yeniden derleme gerektirmeden gelişen veri yapılarını karşılayabilir.
Yaygın JSON Kullanım Alanları
- REST ve GraphQL API'leri — İstek ve yanıt yükleri için standart format.
- Yapılandırma dosyaları — ESLint, Prettier, webpack ve VS Code gibi araçlar tarafından kullanılır.
- NoSQL veritabanları — MongoDB ve CouchDB, verileri JSON benzeri belgeler olarak depolar.
- Veri serileştirme — Depolama, aktarım veya önbelleğe alma için verileri yapılandırma.
- Gerçek zamanlı iletişim — WebSocket akışlarında ve Webhook'larda JSON mesajları.
- Günlük toplama — Winston, Logstash ve Datadog gibi yapılandırılmış günlükleme araçları, aranabilir, filtrelenebilir günlük girişleri için JSON kullanır.
JSON Doğrulama ve Formatlama
JSON ile çalışırken doğrulama kritik öneme sahiptir. Tek bir sözdizimi hatası — sondaki virgül, eksik tırnak veya kaçış karakteri kullanılmamış bir karakter — tüm bir API entegrasyonunu veya yapılandırma dosyasını bozabilir. Özellikle büyük JSON belgeleri için manuel inceleme güvenilir değildir.
JSON Nasıl Doğrulanır
Doğrulama genellikle şu adımları izler:
- JSON dizesini ayrıştırın — JavaScript'te
JSON.parse()veya tercih ettiğiniz dildeki eşdeğeri gibi standart bir ayrıştırıcı kullanın. - Sözdizimi hatalarını kontrol edin — ayrıştırıcı, sorun konumunu belirten bir mesajla ilk ihlalde hata fırlatacaktır.
- Hataları yinelemeli olarak düzeltin — ayrıştırıcılar ilk hatada durduğundan, belge geçene kadar düzeltip yeniden doğrulayın.
Çoğu çevrimiçi JSON aracı, doğrulamayı formatlama ile birleştirir. JSON'unuzu yapıştırın; araç sözdizimini anında kontrol eder, hataları satır ve sütun numaralarıyla vurgular ve temiz, girintili çıktı üretir. Bu, kodunuzdaki ayrıştırıcı istisnalarıyla hata ayıklamaktan önemli ölçüde daha hızlıdır.
JSON ile Çalışma İpuçları
- Kullanmadan önce her zaman doğrulayın — Elle yazılmış JSON'un geçerli olduğunu asla varsaymayın.
- Bir linter kullanın — JSON eklentili ESLint gibi araçlar, hataları üretime ulaşmadan önce yakalar.
- JSON kütüphanelerini tercih edin — İnce sözdizimi hatalarından kaçınmak için dize birleştirme yerine serileştirme kütüphaneleriyle JSON oluşturun.
- Katı Content-Type başlıkları ayarlayın — API'ler için, bozuk istekleri erkenden reddetmek üzere
Content-Type: application/jsonzorunlu kılın.
JSON sözdiziminizi anında kontrol etmek, hataları bulmak ve verilerinizi okunabilirlik için formatlamak için ücretsiz çevrimiçi JSON doğrulayıcı ve formatlayıcı kullanın. İster temel bilgileri öğrenen bir başlangıç seviyesinde olun, ister bir üretim API'sinde hata ayıklayan deneyimli bir geliştirici, JSON Formatlayıcı ve Doğrulayıcı aracımız JSON verileriyle verimli bir şekilde çalışmanıza yardımcı olur.