Merhaba sevgili okurlarım buğün sizlerle Json verilerinin App Inventor 2 altyapısını kullanan platformlarda nasıl işliceğimizi anlatmaya çalışacağım.
Bakalım ilk olarak Json neymiş?
Resmi tanımlamadan biraz aşırırsak
yazabilmesi kolaydır. Makinaların tarayıp, yaratabilmesi kolaydır. JavaScript Programlama Dili, Standard ECMA-262 3.Yayın – Aralık 1999, versiyonunun alt kümesi üzerine kurulmuştur. JSON, tamamen programlama dillerinden bağımsız, ancak C türevi dillere (C, C++, C#, Java, JavaScript, Perl, Python ve daha pek çoğu), yazılış bakımından çok benzeyen bir veri tanımlama formatıdır. Bu özellikler, JSON’u veri değiştokuşu için ideal hale getirmektedir.
JSON iki yapı üzerine kurulmuştur:
İsim/değer çifti koleksiyonu. Çeşitli programlama dillerinde bu, “object, record, struct, dictionary, hash table, keyed list veya associative array” olarak da tanımlanmıştır.
Sıralı değer listesi. Çoğu programlama dilinde bu, “array, vector, list veya sequence” olarak tanımlanır.
Detaylı bilgi için,
https://www.json.org/json-tr.html
Şeklinde kullanılmadan pek anlaşılmayan bir açıklamaya sahiptir.
Özetlersek genellikle verilerin saklanması ve aktarırması konusunda kullanılan özellikte web API ler de sıklıkla karşımıza çıkar.
JSON verileri App Inventor 2 platformlarında nasıl işlenir?
Json verilerini işlemek için yerel bir decoder a sahip olan App Inventor 2, Json verilerini App Inventor 2 de sıklıkla kullandığımız listelere çevirir böylece Json verisinin bir obje mi veya dizimi şeklinde düşünmeden liste elemanı seçe seçe istenilen veriye ulaşmamızı sağlar.
Örneklerde JSON verisi olarak Opentdb tarafından sağlanan veriyi kullanıcağız.
https://opentdb.com/api.php?&encode=base64&amount=25&category=12&type=multiple
ve response_code değerini almaya çalışacağız.
Not: Json verisini çekmek için web componentini kullanıyoruz.
Aşağıdaki görüntüde Json verisinin bir listeye çevrilerek select list item ile response_code nasıl seçildiği görülmektedir.
Daha profesyonel bir yöntem yokmu?
Uzun uzun “select list item” blokları ile uğraşmak biraz hamallık oluyor bu yüzden topluluk tarafından geliştirilmiş bir çok eklenti mevcut. Bu anlatımda kullanılacak eklenti ise Luke tarafından ücretsiz olarak sunulan Json eklentisi olacak.
http://thunkableblocks.blogspot.com/2017/07/jsontools-extension.html?m=1
Adresinde Luke Gackle tarafından yayınlanan bu güzel eklentiyi seçme sebebimiz ise gelişmiş özelliklerinin yanında en günceli olmasıdır.
resimde görüldüğü gibi eklenti ile daha basit bir şekilde istenilen veri alınıyor.
Başka bir örnek
https://opentdb.com/api_category.php
adresinden json verilerini alalım
Burada tüm kategorileri ve ID lerini öğrenmek istiyorsak.
eklenti kullanarak yapılması gereken kodlama şu şekilde olacak
Dikkat edilmesi gereken şeylerden biride burada mevcut projede spinner komponenti kullanılmış bu yüzden spinner ile ilgili bloklar mevcut.
Projede spinnerda ortaya çıkan sonuç:
Geliştirme aşamasında olan yukarıdaki projede opentdb.com tarafından sağlanan json verilerinin örnek kullanımı gözlenmekte.
Eklentiyi kullanırken dikkat edilmesi gereke hususlardan biri ise istenilen verinin nasıl tutulduğunu bilmektir.Json verileri obje yada dizi (array) olarak tutulur bu yüzden eklentiyi kullanırken
https://jsonformatter.org/json-parser
adresinden yardım alabilirsiniz burada istenilen verinin neyin içerisinde olduğu gösterilmektedir.
Görüldüğü gibi objenin içerisinde iki adet item(eleman) olduğu söylenmekte.
En iyi şekilde json verilerini ayrıştırmayı öğrenmek için aslında benim gibi biraz haşır neşir olmalısınız.Eklentinin blok açıklamalarını burada bulabilirsiniz.
Eklenti sayfası
http://thunkableblocks.blogspot.com/2017/07/jsontools-extension.html?m=1