Parsing Json di Windows Phone 7

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.

image

1. Pertama buatlah sebuah project pada Visual Studio for windows phone, berilah nama WebserviceJson

2. Buatlah tampilan seperti dibawah ini pada halaman MainPage.xaml

image

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

image[17]

Sekian,

Semoga bermanfaat Winking smile

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s