Windows Phone
Json.NET ile Kolay Yoldan JSON İşleme
Windows Phone uygulamalarında, bir servisten veri çekme ihtiyacı duyduğumuzda, bu veriyi alabilmek için karşımıza çıkan en yaygın format JSON olacaktır. Peki, JSON formatındaki veriyi uygulamamızda nasıl işleyip kullanabiliriz? Bu yazıda, bu sitedeki veriyi kullanacağız. Json verisini s...
Windows Phone uygulamalarında, bir servisten veri çekme ihtiyacı duyduğumuzda, bu veriyi alabilmek için karşımıza çıkan en yaygın format JSON olacaktır. Peki, JSON formatındaki veriyi uygulamamızda nasıl işleyip kullanabiliriz? Bu yazıda, bu sitedeki veriyi kullanacağız.
Json verisini saklamak
İlk aşamada yapmamız gereken, çekeceğimiz JSON verisini saklayabilecek bir sınıf yaratmak. json2csharp sitesi bunu bizim için yapıyor ve JSON cevabını göstermemize yardımcı olacak sınıfın C# kodunu bizim için üretiyor.
[code]public class Director { public string name { get; set; } public string nameId { get; set; } } public class Writer { public string name { get; set; } public string nameId { get; set; } } public class RootObject { public List countries { get; set; } public List directors { get; set; } public List filmingLocations { get; set; } public List genres { get; set; } public string idIMDB { get; set; } public List languages { get; set; } public string metascore { get; set; } public string plot { get; set; } public string rated { get; set; } public string rating { get; set; } public string releaseDate { get; set; } public List runtime { get; set; } public string simplePlot { get; set; } public string title { get; set; } public string urlIMDB { get; set; } public string urlPoster { get; set; } public List writers { get; set; } public string year { get; set; } } [/code]
Bu kodu JsonData.cs isimli bir C# dosyasına kaydedip, ikinci aşamaya geçelim.
Json verisini kullanıcıya göstermek
Peki, bu JSON cevabını telefonumuzda nasıl saklayıp, kullanıcılara uygun formatta göstereceğiz? Bunun için aslında özelleşmiş bir string olan JSON cevabını telefona kaydetmemiz gerekiyor. Bu amaçla WebClient sınıfını kullanacağız.
[code]WebClient webClient = new WebClient(); webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted); webClient.DownloadStringAsync(new Uri(http://www.myapifilms.com/search?title=Airplane!&format=JSON)); [/code]
String olarak tuttuğumuz JSON verisinin telefonumuza indirilmesi tamamlandığında, webClient_DownloadStringCompleted event'i çağrılıyor ve bu String'i dönüştürüp uygun formatta gösteriyoruz:
[code]void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { var rootObject = JsonConvert.DeserializeObject(e.Result); foreach (var data in rootObject) { //artık bu data objesini kullanarak istediğimiz özelliğe erişebiliriz. //Örneğin filmin titleını ekrana yazdıralım. MessageBox.Show(data.title); } }[/code]
Son aşama
İkinci aşamada gördüğümüz JsonConvert.DeserializeObject metodu bizim için en önemli işi yapan metod. JSON formatındaki veriyi, bizim kullanabileceğimiz bir formata çeviriyor. Bu metodu kullanabilmek için, Json.NET kütüphanesini Nuget Manager kullanarak indirmemiz gerekiyor. Solution ögesine sağ tıklayıp "Manage Nuget Packages" diyelim ve arama kısmına Json.NET yazalım, çıkan kütüphaneyi indirdikten sonra, uygulamamız kullanılmaya hazır!
23.07.2014
Yorumlar
Açıkakademideki eğitimleri izledim şimdi Geleceğiyazanlardaki eğitimlere bakayım çok teşekkür ederim, iyi günler ^^
Yukarıdaki uygulamamda milli piyangonun json verilerinizi blogda belirttiğiniz şekilde işledim güzel oldu.
Selamlar,
"Json verisini kullanıcıya göstermek" bu kısmı daha detaylı yazabilir misiniz? O kodu nereye yazacağız?