JSON Hakkında Genel Bilgi

JSON (JavaScript Object Notation)

Programlama ile ilgilenmeye başlayan herkes bir yerlerde JSON terimini mutlaka duymuştur. Hele ki bir Web sunucusundan veri alınacaksa yada bir web sunucusuna veri gönderilecekse, JSON kullanmak bir gereksinim haline gelmeye başladı desek yalan söylemiş olmayız heralde..

Peki son yıllarda sıkça duyduğumuz ve hemen hemen herkesin kullandığı bu JSON Nedir? Ne işe yarar?

JSON; “Anahtar : Değer” (Key : Value) ilişkisine dayalı bir veri değişim formatıdır. Yani verilerimizi bir anahtar veri ile ilişkilendirip saklayabildiğimiz veri tipidir.
“Anahtar : Değer” olayına kısaca değinmek gerekirse;
Sakladığımız verilere çeşitli referanslar (Anahtar) vererek, sadece ihtiyacımız olan veriye erişimimiz mümkün olabilir.

Diyelim ki kimlik bilgilerim bir yerde saklanıyor olsun. Ben programlama esnasında kimlik bilgilerimden sadece birine (Örneğin sadece adıma) yada bir kaçına erişmek isteyebilirim. Böyle bir durumda saklı olan tüm bilgilere erişim sağlamak gereksiz ve anlamsızdır. Çünkü benim ihtiyacım olan şey sadece adımla ilgili bilgidir. Eğer ben kimlik bilgilerimi çekişli referanslarla (Anahtar) ilişkilendirirsem, sadece ihtiyacım olan veriye erişim sağlayabilirim.

Burada;

“Umut” kelimesi (Değer) , “ad” kelimesi (Anahtar)  ile yukarıdaki gibi ilişkilendirilmiştir.

Aynı şekilde;

“ONUR” değerinin anahtarı: “soyad”,
“Zonguldak” değerinin anahtarı: “dogum_yeri”,
“26” değerinin anahtarı: “yas”

olarak belirtilmiştir. Yani bu demek oluyor ki ben sadece “ONUR” değerine erişmek istediğimde kullanmam gereken anahtar’ım “soyad” olacaktır.
JSON formatındaki veriler de bu şekilde bir Anahtar:Değer ilişkisiyle çalışmaktadır.

JSON verileri: JSON Nesnelerinden (JSON Object), ve JSON Nesnelerinin bir araya gelerek oluşturdukları JSON Dizilerinden (JSON Array) meydana gelmektedir.

Bir JSON Nesnesi;
Açık ve kapalı süslü parantezler (  } ) içinde, birbirlerinden virgüller ( , ) ayrılan anahtar:değer ilişkili verilerin bir araya gelmesiyle oluşmaktadır.

yukarıda ki JSON Nesnesinde (JSON Object) 2 adet veri saklanmaktadır.
İlk veri de : Anahtarımız “isim”, değerimiz “Umut”
İkinci veri de : Anahtarımız “soy isim”, değerimiz “ONUR” olarak belirtilmiştir. Gördüğünüz gibi bu 2 bilgi birbirinden virgülle ayrılmıştır.

Bir JSON Dizisi (JSON Array) ise;
Açık ve kapalı köşeli parantezler ( [ ] ) içinde, bir JSON Nesnesinin (farklı anahtar ve değerler veya aynı anahtar ve değerler alarak) virgüller ile ayrılarak tekrarlamasından meydana gelir.

Bu JSON Dizisinde aslında bir JSON Nesnesinin farkı değerler alarak tekrar ettiğini görebilirsiniz. Biraz daha açıklamak gerekirse;

Yukarıda 4 JSON Nesnesi’nden oluşan JSON Dizisi’nin ilk elemanı:

İkinci elemanı:

Üçüncü elemanı:

Dördüncü elemanı:

olarak belirtilmiştir. Dizimizin ilk 3 elemanındaki JSON Nesneleri “araba” ve “model” anahtarları içerirken, dördüncü elemanında sadece “Stok durumu” anahtarı içermektedir. yani bir JSON Dizisini oluşturan JSON Nesneleri aynı yapıda olmak zorunda değiştir.

Bu JSON formatının esnekliğini gösterir ve bize sağladığı önemli avantajlardan biridir.

SQL verilerinde sadece dikey olarak genişleme mümkün olabilirken, JSON verileri hem dikey hem de yatay olarak genişletilebilir.
Yani bir SQL ‘de ilk eleman (satır) 5 adet anahtar (sütun) içeriyorsa, diğer elemanlar da 5 adet anahtar içermek zorundadır.
Tablo şeklinde düşünürsek SQL’de ilk satırdaki sütun sayısı neyse diğer satırlarda da aynı olmak zorundadır. SQL’e sonradan istediğimiz kadar satır ekleyebiliriz (Dikey olarak genişleme) , fakat sonradan sütun eklemek gibi bir durum söz konusu değildir. (Yatay olarak genişleme)

Fakat JSON’da elemanlarının anahtar sayıları (satırların sutün sayıları gibi de düşünülebilir) tamamen farklı olabilir. Hatta bir anahtarın değeri; bir JSON Nesnesi veya bir JSON Dizisi şeklinde bile olabilir. Buda bize JSON verilerinin hem Yatay olarak hem de Dikey olarak genişleyebildiğinin bir göstergesidir. Bu esnek yapı program yazarken bizlere ciddi derece de kod ve dolayısıyla zaman olarak kazanç sağlayacaktır.

Hız ve performans açısından da SQL’e göre daha iyidir. Az yer kaplar.

En genel anlamda JSON veri formatı bu şekilde tanımlanabilir. Bir sonraki yazılarımda Java, Android ve Swift Programlama dilleri içerisinde JSON verileri nasıl kullanılır bunlardan bahsedeceğim..
Şimdilik Hoşçakalın.. 🙂



You may also like...

Bir Cevap Yazın

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