Bu aralar üzerinde çalıştığım bir projeden dolayı JSON verisini işlemem gerekti ve önce php fonksiyonlarıyla bunu başarmayı denedim ama gördüm ki hem yavaş çalışıyordu hemde bir yığın kod birikintisi projeyi kaplıyordu.
Sonra farkettim ki aslında JSON jQuery için yaratılmış! PHP’de yapmak istediğimi 10 satırı geçmeden jQuery’de rahatça yapabiliyorduk..
Neyse konuya gelelim. Projemdeki gibi Twitter API‘yi kullanarak size nasıl kolayca veri çekeceğimizi göstereceğim. Öncelikle Twitter’da bir aramadan gelen JSON’da ne gibi bilgiler var?
- Results: Aradığımız kelime “Results” array’i içinde dödürülüyor. Bu array’in içinde saklanılan bilgiler ise:
- Yazılan yazı*
- Yazıyı yazan*
- (varsa) Kime cevap olarak yazıldığı
- Profil resmi* ..
- Bu arama için dönen diğer bilgiler ise:
- Aranılan kelime*
- Sonraki&Önceki sayfa adresi
- Yenileme adresi
- Max_ID
Biz şimdi yapacağımız mini projede yanında yıldız olanları kullanacağız. Bundan önce Max_ID’nin işlevinden bahsetmek istiyorum.
Düşünün ki “Google” kelimesini aratıyorsunuz. Dünyada twitter’ı kullanan milyonlarca insanın 10%’unun “Google” kelimesini siz arama yaparken girdiğini düşünsek, siz sonuç sayfalarında dolandıkça yenileri eklenecek ve yenileri eklenecek. Bunu engellemek için siz arama yaptığınız anda Max_ID tanımlanıyor ve arama sonuçları o ana kadar o kelimeyi içeren sonuçları gösteriyor.
Kodlamaya Başlıyoruz
Öncelikle jQuery’i kullanacağımızdan </head> etiketinden önce buradan indirmemiz gereken dosyayı ekliyoruz:
<script type="text/javascript" src="jquery.js"></script>
jQuery Kodu
Yukarıda yıldızlı belirtmiş olduğumuş verileri çekmeye başlıyoruz, dikkat edin kaç satır aldı?
var url = "http://search.twitter.com/search.json?callback=?&amp;q=gkaans";
$.getJSON(url, function(JSON){
$('#search ul').empty();
$.each(JSON.results, function(i, results){
$('#search ul').append('<li><img src="' + results.profile_image_url + '" /><span>' + results.text + ' - <a href="http://twitter.com/' + results.from_user + '">' + results.from_user + '</a></span></li>');
});
});
JSON.results’u $.each kullanarak results‘a eşitledik ve results.variable_ismi kullanarak teker teker verileri kolayca çektik.
HTML Kodu ise..
<div id="search">
<ul></ul>
</div>
Hiçte zor değil!.. Buyrun demo sayfası..