Sihirli Fasulyeler
Yükleniyor...
JSON - Bölüm1
 Web-Tasarım   1157   29.10.17   05.08.19   0
json-ilk-bolum.jpg

JSON, websitelerde veri depolama ve veri değişimini için kullanılan formatlardan birisidir. JSON'ın yanında XML, CSV ve YAML gibi formatların da kendine özgü kullanım alanları olsa da JSON en çok kullanılan formattır. Bunun en büyük nedeni JSON yapısının JQuery, PHP, Perl, Python, Java gibi pek çok programlama dillerinde kolaylıkla işlenebilmesidir.

 

JSON'ları temelde iki amaç için kullanırız. Bunlardan ilki, websitemiz için gerekli bazı bilgileri depolamaktır ( Küçük bir veri tabanı gibi ). Farzedelim ki 30 üründen oluşan bir ürün sayfası tasarlayacağız. Ürün bilgilerini içeren bir JSON dosyası oluşturursak, ürünleri listelemek, ürünler için bir arama motoru oluşturmak, ürün ekleme, silme, güncelleme gibi pekçok işlemi kolaylıkla yapabiliriz. JSON'ların diğer kullanım yerleri ise RESTful API olarak isimlendirilen websiteleri arasındaki bilgi paylaşım sistemidir. Günümüzde farklı alanlarda hizmet veren pek çok websitesi, hizmetlerini veya bilgilerini diğer websiteleri ile paylaşır. Bu paylaşım yaygın olarak JSON aracılığı ile yapılır. Örneğin kullanıcılarınıza film bilgileri sunacak bir uygulama tasarlamak istiyorsunuz. Bu uygulamayı şimdiye kadar çekilmiş bütün filmlerin bilgilerini toplayarak yapabilirsiniz. Elbetteki bütün filmler için bilgi toplama, afiş resimlerini bulma, puan ve eleştirileri elde etme, veri tabanı oluşturma gibi çok fazla zamanınızı alan işlemleri yapmak zorunda kalırsınız. Bunun yerine bu hizmeti sağlayan bir websitesi aracılığıyla, kullanıcılarınızın ulaşmak istediği bir filmin bütün bilgilerini (resimler, eleştriler, puanlar, özetler, oyuncu bilgilerini vs.) anlık olarak bu websitesinden alabilir, düzenleyip kullanıcılarınıza gösterebilirsiniz. Böylece büyük emeklerle oluşturacağınız tasarımınız, kolaylıkla ve kısa zamanda gerçekleştirilir. RESTful API konusunu makalemizin sonunda biraz daha ayrıntılı inceleyeceğiz. İlk olarak JSON formatının yapısınından bahsedelim. JSON'ların yapısı, JavaScript nesne yapısına benzer ve yazım kuralları açısından çok küçük farklar vardır.

   

JavaScript Nesne

var kitap = { isim : "Sefiller", yazar : "Victor Hugo", sayfa : 416 }
 

JSON

{ "isim" : "Sefiller", "yazar" : "Victor Hugo", "sayfa" : 416 }
 

Sanırım iki yapının ne kadar benzer olduğunu açıkça görülüyor. Zaten JSON, JavaScript Object Notation (JavaScript Nesne Kaydı) anlamına gelir. Yani JSON yapısı, javascript nesne yapısından esinlenerek oluşturulmuştur. Bu yüzden benzerliğin olması doğaldır. En büyük fark, Javascript nesnelerdeki tanımlamalarda tırnak işaret kullanılmazken, JSON'da kullanılır. Her iki yapıda da rakam değerleri için tırnaklara gerek yoktur. JSON yapılarında, javascript nesnelerde olduğu gibi diziler de kullanılabilir. Örneğin;

 
[
{ "kayit_no" : 1 , "marka" : "BMW", "modeller" : ["X6","Z4","I8"] },
{ "kayit_no" : 2 , "marka" : "Mercedes", "modeller" : ["A3","E220","C180"] }
]
 

Yukardaki JSON yapısı, bir diziden oluşmakta( başlangıç ve bitiş [ ] işaretleri arası), dizide 2 nesne yer almakta ( { } işaretleri arası ), nesne yapısında "modeller" isimli bir dizi yer almaktadır ( [ ] işaretleri arası ).

 

Bu şekilde JSON'ları kendimiz oluşturabildiğimiz gibi, PHP gibi bazı programlama dilleri JSON'ları otomatik olarak oluşturabilir ( Elbetteki bilgilerin veri tabanı gibi bir ortamdan alınması gerekir ) . Bu tür dillerde JSON'ları oluşturacak özel komutlar yer alır. Eğer JSON'ları kendimiz oluşturuyorsak, yazım kuralları hatasız olmalıdır. En ufak virgül, tırnak hatasında JSON'daki bilgileri alıp işleyemeyiz. Zaman zaman uzun JSON blokları içinde bazı yazım hatalarını gözden kaçırabiliriz. Bu hatalar için JSON yapılarını denetleyen ve hataları gösteren bazı websiteleri internette bulunmaktadır. Bu websitelerini kullanarak hatalarımızı görebilir ve kolaylıkla düzeltebiliriz. Bu sitelerden en popüleri JSON-Lint sitesidir. JSON yapısını bu sitedeki alana yapıştırıp, yapınızın doğruluğunu kontrol ettirebilirsiniz. Eğer yapıda hata varsa hataların nerde olduğu size gösterilir.

 

Son olarak RESTful API'lerden biraz daha söz etmek istiyorum. Gerçekten web tasarımcılar için son derece önemli bir sistemdir. Daha önce de bahsettiğim gibi bireysel olarak elde edemeyeceğimiz pek çok bilgi ve hizmet, bazı websiteleri tarafından paylaşılır. Hava durumları, maç skorları, kitap, film, müzik, şarkı, harita, ekonomi bilgileri gibi pek çok alandaki bilgiler, JSON aracılığı ile paylaşılır. Bazı websiteleri paylaşımlarını bedava olarak yaparken, bazı websiteleri bu paylaşımlar karşılığında ücret talep ederler. Bazı websitelerinde ise paylaşım bedava, fakat paylaşılan bilgi miktarı sınırlıdır. Genellikle bedava paylaşım yapan websiteleri üyelik sistemi ile çalışır. Yani bu sitelere üye olarak, sitelerin bilgilerinden yararlanabilirsiniz. Üye olduğunuzda size bir API KEY (API Anahtarı) verilir. İstediğiniz bilgi için bu API anahtarını kullanarak bilgiyi alabilirsiniz. RESTful API kullanıma bir örnek verelim,

 

Örneğin, websayfanızda bitcoin kurlarını gösteren bir uygulamanın olmasını istiyorsunuz. İnternette bu hizmeti sağlayan pek çok websitesi bulabilirsiniz. Fakat bu sitelerden CoinDesk sitesi, bu hizmetini bedava ve üyelik şartı olmadan sunuyor. Yani üye kaydına ve bir API KEY'e ihtiyacınız yok. O yüzden bu siteyi tercih edelim. Websitesini incelediğinizde, siteye göndereceğiniz sorgunun nasıl olması gerektiği bilgileri yer alıyor. İlk olarak elde etmek istediğimiz bilginin ne olduğunu uygun bir sorgu şeklinde siteye göndermemiz gerekiyor. Oluşturacağımız sorgular her API hizmeti veren websitesinde farklıdır. O yüzden açıklama kısımlarını iyice incelememiz ve gönderilecek sorgunun nasıl olması gerektiğini öğrenmemiz gerekiyor. Site açıklamalarına baktığımız zaman euro, dolar ve sterlin için göndermemiz gereken sorgunun https://api.coindesk.com/v1/bpi/currentprice.json şeklinde olması gerektiğini görebilirsiniz. Eğer linke tıklarsanız, sitenin cevabının JSON formatında olduğunu görürsünüz (Forbidden hatası alırsanız sayfayı yenileyiniz). Artık tek yapmamız gereken JSON formatındaki bilgileri alıp, kendimize göre düzenlemek ve sitemize eklemek olacaktır. Bahsettiğim uygulamayı aşağıda inceleyebilirsiniz.

 

Sihirli Fasulyeler BitCoin Kur Uygulaması

 
 

Dikkat : Uygulama örnek amaçlıdır. Değerlerin doğru olduğu garantisi verilmez.

 

JSON'larla ilgili sonraki bölümde, hizmet almak istediğimiz websitelerine gönderdiğimiz sorguların sonuçlarını nasıl alırız, nasıl işleyebiliriz konusuna değindik. İkinci bölüme buradan ulaşabilirsiniz.

 

 Bu konuyu paylaş

 

 Konuyu geliştirmemize yardımcı ol, konuyu değerlendir.
 İlk Sen Değerlendir

 

 Yorum yaz, soru sor, geliştirme öner
E-Posta adresiniz yayınlanmayacak.

 

 İlk Yorumu Sen Yap