Ditengah pemberitaan rekan2 developer beberapa hari ini mengenai technology yang ada pada Windows 8. Disini saya tidak akan berbicara tentang windows 8nya, akan tetapi Windows Phone 7. Karena kita tahu bahwa Silverlight juga tetap digunakan pada WIndows 8 *Long life of silverlight J*. Dalam kesempatan ini saya akan berbagi mengenai parsing Json pada silverlight for WP. Dalam project yang akan kita buat, kita harus menambahkan namespaces using System.Runtime.Serialization dan using System.Runtime.Serialization.Json. Dari kedua namespaces ini kita dapat menggunakan class yang sudah disediakan yang terkait dengan Json
Berikut adalah tampilan akhir project ini. 1. Pertama buatlah sebuah project pada Visual Studio for windows phone, berilah nama WebserviceJson 2. Buatlah tampilan seperti dibawah ini pada halaman MainPage.xaml
Ini terdiri dari satu Listbox dan satu Button 3. Sekarang bukalah file MainPage.xaml.cs, kemudian masukan code dibawah ini [DataContract] public class detailedAddress { [DataMember] public string adminName2 { get; set; } [DataMember] public string adminName3 { get; set; } [DataMember] public string countryCode { get; set; } [DataMember] public string placeName { get; set; } [DataMember] public double lat { get; set; } [DataMember] public double lng { get; set; } } [DataContract] public class Postal_Result { [DataMember(Name = "postalcodes")] public detailedAddress[] addresses; } 4. pada tombol Button tambahkan code berikut ini WebClient client = new WebClient(); client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); client.OpenReadAsync(new Uri("http://ws.geonames.org/postalCodeLookupJSON?postalcode=6600&country=AT"), UriKind.Absolute); 5. nah sekarang mari kita buat method client_OpenReadCompleted void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { var serializer = new DataContractJsonSerializer(typeof(Postal_Result)); Postal_Result data = (Postal_Result)serializer.ReadObject(e.Result); for (int i = 0; i <= data.addresses.Length - 1; i++) { listBox1.Items.Add(data.addresses[i].adminName2.ToString()); listBox1.Items.Add(data.addresses[i].placeName.ToString()); listBox1.Items.Add(data.addresses[i].countryCode.ToString()); listBox1.Items.Add("------------"); } } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Terakhir… coba Anda tekan F5 dan kemudian click tombol buttonnya dan liat apa yang terjadi… hhe
Sekian, Semoga bermanfaat
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H
Lihat Inovasi Selengkapnya