JSON Kullanımı

0
2554

JSON; (“Javascript Object Notation”), insanlar tarafından okunabilen bir veri değişimi biçimidir. XML’in Javascript ile çok da iyi kullanılamamasından dolayı tercih edilir. Klasik DOM ağaçlarından farksız bir yapıya sahiptir ve şu veri tiplerini destekler:

  • Number
  • String
  • Boolean
  • Array
  • Object
  • Null

Biz de bugün javada JSON kullanarak ilçeleri yazdığımızda o ilçeye ait hava durumunu gösteren ufak bir program yazacağız.

Öncelikle JSON’u çekeceğimiz API’yi analiz edelim:
http://api.openweathermap.org/data/2.5/find?q=Seyhan&units=metric

api.openweathermap.org/data/2.5/find > Bu bölüm sorguyu yapacağımız asıl link.

?q=Seyhan&units=metric > Burası da sorguya eklediğimz parametreler.

Sorgunun başındaki q harfi ilçeye göre sorgu yapacağımızı, units’in karşısındaki metric bölümü de metrik sistem kullandığımızı belirtmekte.

API linkine tıkladığımızda ise bizi aşağıdaki kodlar karşılıyor:

Yukarıdaki koda baktığımızda { } içerisinde olan ifadeler görürüz. Bunlar JSON içerisinde obje olarak nitelendirilir. Tabii bu obje içerisinde başka objeler ya da JSON arrayler de tutulabilir. Biz ise burada yalnızca hava sıcaklığını kullanacağız.

Projemize başlamadan önce aşağıdaki classı projemize import etmeliyiz. Bu class API’den dönen JSON yapısını internetten çekmemizi sağlıyor. Ben de zaten yazılmış olduğu için tekrar yazmaya ihtiyaç duymadım.

 

Tabii internet erişimi için aşağıdaki satırı manifest dosyanıza eklemeyi de unutmayın.

Şimdi de layout tasarımını yapalım.

Benim tasarımımın xml’i şu şekilde:

Görünümü ise şöyle:

hava-durumu-screenshot

 

Son olarak da MainActivity classımızın içerisine aşağıdaki kodları yazıyoruz. Kodlarla ilgili gerekli tüm açıklamaları kod içerisinde yorum satırlarıyla yaptım.

Not: API’den dönen değer her zaman kesin sonuç vermeyebilir. Burada önemli olan JSON ile veriyi nasıl çekebileceğimizi öğrenmektir.

Projenin kaynak kodlarına buradan, APK’sına ise buradan ulaşabilirsiniz.

Bir sonraki yazıda görüşmek dileğiyle, kendinize iyi davranın…

CEVAP VER

Please enter your comment!
Please enter your name here