JAVASCRIPT

JSON Nedir?

JSON (JavaScript Object Notation – JavaScript Nesne Notasyonu) insanlar için okunabilir olan bilgi saklama ve alışveriş formatıdır. Bir JSON dosyası sadece metin kapsar ve .json uzantısını kullanır.

Bu makalede JSON nedir ve web sitenizin performansını nasıl artırabilir öğreneceksiniz.

JSON Nedir ve Ne İçin Kullanılır?

JSON yapılı veri depolayan ve genellikle bir sunucu ve istemci arasında veri alışverişi için kullanılan bir formattır.

Bir JSON dosyası benzer fonksiyonlara sahip olan XML‘e (ing) daha basit ve hafif bir alternatiftir. Bu formatlar depolanan verinin eşzamansız yüklenebilmesi için uyumlu bir şekilde çalışırlar, yani bir web site sayfayı yenilemeden bilgilerini güncelleyebilir.

Bu işlemi XML/RSS’e kıyasla JSON ile yapmak daha kolaydır. Bugünlerde birçok web sitesi AJAX‘ı benimsediğinden .json dosyası oldukça popüler hale gelmiştir.

Bunlara ek olarak, JSON kullanıcıların JSONP adlı bir yöntemle <script> etiketlerini uygulayarak farklı bir alan adından veri istemelerine izin verir. Aksi taktirde alan adları arasında aynı kök politikası nedeniyle veri transfer edemezsiniz.

JSON Sözdizimi

JSON nedir öğrendiğinize göre artık JSON’ın nasıl çalıştığına geçebiliriz. Bir .json dosyası oluşturmak için doğru sözdizimini takip etmeniz gerekir.

Bir JSON nesnesinin iki adet çekirdek elementi mevcuttur: Anahtarlar ve Değerler.

  • Anahtarlar diziler olmalıdır. Tırnak işaretleriyle çevirili karakterler dizisinden oluşurlar.
  • Değerler geçerli bir JSON veri tipidir. Dizin, nesne, dizi, boole değeri, rakam veya boşluk şeklinde olabilirler.

Bir JSON nesnesi {} küme parantezleriyle başlar ve biter. İçinde iki veya daha fazla anahtar/değer çiftlerine sahip olabilir ve bu ikisini bir virgül ile ayırır. Bu sırada, her bir anahtardan sonra değerden ayrıştırmak için iki nokta üst üste gelir.

İşte bir örnek:

{"sehir":"Istanbul", "ulke":"Turkiye"}

Burada iki adet anahtar/değer çiftimiz mevcuttur: sehir ve ulke anahtarlarken; Istanbul ve Turkiye ise değerlerdir.

Değer Tipleri

Değerler geçerli bir JSON veri tipi içerir ve bunlar:

Dizin

Dizin sıralı veri koleksiyonlarından oluşur. Köşeli parantezlerle başlar ve biterler ve içerideki her bir değer bir virgülle ayrılır.

Bir dizin değeri JSON nesneleri içerebilir, yani aynı anahtar/değer çifti konseptini kullanır.

Örneğin:

"ogrenciler":[      
{"ad":"Ali", "soyad":"Demir"},
{"ad":"Ayse", "soyad":"Turan"},
{"ad":"Hasan", "soyad":"Yilmaz"}
]

Köşeli parantezlerin aralarındaki bilgiler dizinlerdir ve üç adet nesneye sahiptirler.

Nesne

Bir nesne bir anahtar ve değer içerir. Her anahtardan sonra bir iki nokta üst üste bulunmaktadır ve ayrıca her nesneyi de ayıran her değerden sonra ise bir virgül gelmektedir. İkisi de tırnak işaretleri içindedir.

Bir değer olan nesne ise nesne ile aynı kuralı kullanmalıdır. Tıpkı bu örnekteki gibi:

“isciler”: {"ad":"Ali", "soyad":"Demir”}

Burada isciler anahtarken küme parantezlerinin içindeki her şeyse nesnedir.

Diziler

Bir dizi 0 ya da daha fazla sıradan oluşan Unicode karakterleridir. İki çift tırnak işareti tarafından çevrelenir.

Aşağıdaki örnek Ali‘yi çift tırnak işaretleri arasında bir takım karakter olduğundan bir dizi olduğunu gösterir.

"ad":"Ali"

Rakam

JSON’da rakamlar aynı aşağıdaki örnekteki gibi tam sayı ya da kayan nokta olmalıdır:

{“yas”:”30”}

Boole değeri

Aşağıda gösterildiği gibi true (doğru) ya da false (yanlış) değer olarak kullanılabilmektedir:

{“evli”:”false”)

Boşluk

Bilgi olmadığını göstermek için kullanılır.

{“kanGrubu”:”bosluk”}

Depolanmış JSON Verisi

JSON verisini depolamak için iki yol vardır – nesne ve dizin. İlki böyle gözükecektir:

{
"ad":"Ali",
"soyad":"Demir",
"cinsiyet":"erkek"
}

Küme parantezleri verinin bir JSON nesnesi olduğunu belirler. Bu örnekte virgüllerle ayrılan üç anahtar/değer çifti mevcuttur.

Her çiftte anahtarları (ad, soyad ve cinsiyet) değerlerden (Ali, Demir, erkek) ayırabilmek için anahtarlardan sonra iki nokta üst üste gelir.

Bu örnekteki değerler dizilerdir. Bu yüzden de tırnak işaretleri içindedirler, tıpkı anahtarlar gibi.

Dizinleri Kullanmak

Veri depolamanın bir başka yöntemiyse dizindir. Bu örneğe bir göz atın:

{
"ad":"Ali",
"soyad":”Demir”,
“cinsiyet”:”erkek”,
"hobi":["futbol", "okumak", "yuzmek"]
}

Bu yöntemi öbürenden ayıran şeyse dördüncü anahtar/değer çiftidir. Hobi anahtardır ve köşeli parantezler arasında bir dizini temsil eden birçok değer (futbol, okumak, yuzmek) mevcuttur.

JSONP ile birlikte kullanıldığında alan adları arasından veri alışverişi yapma engelini kaldırmakta yararlı olabilir. Bu işlem aynı kaynak hatası olmadan dizindeki belirli bir nesneyi isteyen geri arama‘yı kullanarak çalışır.

Şanslıyız ki Dizin ayrıca birden çok veriyi aramanız için yinelenen komutları çalıştırmanıza izin veren döngüleri (ing) destekler. Böylece bütün işlem daha hızlı ve etkili olur.

Sonuç

Gördüğünüz gibi JSON veri alışverişi için oldukça kullanışlı bir araçtır. Birçok avantajı mevcuttur:

  • Eşzamansız olarak bilgi yükleyebilir böylece web siteniz daha duyarlıdır ve veri akımını daha kolay yapabilir.
  • Başka bir siteyle veri alışverişi yaparken olan domainler arası problemleri çözmek için kullanabilirsiniz.
  • JSON XML’den daha basit ve hafiftir.

Umut ediyoruz ki bu makalede JSON nedir cevaplayabilmişizdir ve burada öğrendikleriniz web sitenizi daha etkili biçimde yönetmenize yardımcı olacaktır. Herhangi bir fikrinizi veya yorumunuzu aşağıdaki yorumlar kısmında bizimle paylaşmaktan çekinmeyin!

Yazar hakkında

Gökhan O.

Gökhan Hostinger'da Pazarlama Asistanı olarak çalışmakta. WordPress hakkındaki tecrübe ve bilgisini bu blogda paylaşıyor. Çeviri yapmak, içerik yönetmek ve de SEO optimizasyonu yapmaktan büyük keyif alır. Hobileri arasında oyun oynamak ve futbol maçları izlemek vardır.

Yorum Ekle

Yorum göndermek için buraya tıklayın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Dünya çapında binlerce aboneye katılın

ve mükemmel fırsatlarla en yeni rehberler e-posta adresinize gelsin

Please wait...

Abone olduğunuz için teşekkürler!

Şimdi kazanmaya başlayın!

Hepsi bir arada web hosting & alan adı yalnızca

9
39 TL
/ay