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.
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.
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.
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.
İşte bir örnek:
Kod:
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.
Kod:
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:
Kod:
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.
Kod:
Rakam
JSON’da rakamlar aynı aşağıdaki örnekteki gibi tam sayı ya da kayan nokta olmalıdır:
Kod:
Boole değeri
Aşağıda gösterildiği gibi true (doğru) ya da false (yanlış) değer olarak kullanılabilmektedir:
Kod:
Boşluk
Bilgi olmadığını göstermek için kullanılır.
Kod:
Depolanmış JSON Verisi
JSON verisini depolamak için iki yol vardır, nesne ve dizin. İlki böyle gözükecektir:
Kod:
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:
Kod:
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.
Gördüğünüz gibi JSON veri alışverişi için oldukça kullanışlı bir araçtır. Birçok avantajı mevcuttur:
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.
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.
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.
İşte bir örnek:
Kod:
{"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.
Kod:
Kod:
"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:
Kod:
“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.
Kod:
"ad":"Ali"
Rakam
JSON’da rakamlar aynı aşağıdaki örnekteki gibi tam sayı ya da kayan nokta olmalıdır:
Kod:
{“yas”:”30”}
Boole değeri
Aşağıda gösterildiği gibi true (doğru) ya da false (yanlış) değer olarak kullanılabilmektedir:
Kod:
{“evli”:”false”}
Boşluk
Bilgi olmadığını göstermek için kullanılır.
Kod:
{“kanGrubu”:”bosluk”}
Depolanmış JSON Verisi
JSON verisini depolamak için iki yol vardır, nesne ve dizin. İlki böyle gözükecektir:
Kod:
Kod:
{
"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:
Kod:
Kod:
{
"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.
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.