kalau saya biasanya menggunakan library JSON.NET,jadi cukup
buat kelas penampung buat response dari web service dalam hal ini :
public class response
{
public string gambar { get; set; }
public string id_kisah { get; set; }
public string judul { get; set; }
public string konten { get; set; }
public string pengarang { get; set; }
public string preview { get; set; }
}
dan dipanggil dengan cara :
public MainPage()
{
InitializeComponent();
WebClient client = new WebClient();
client.OpenReadCompleted += new
OpenReadCompletedEventHandler(client_OpenReadCompleted);
client.OpenReadAsync(new Uri("
http://labs.abdullah21.net/api/show_all_kisah.php"),
UriKind.RelativeOrAbsolute);
}
void client_OpenReadCompleted(object sender,
OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
using (StreamReader sr = new StreamReader(e.Result))
{
using (JsonReader jr = new JsonTextReader(sr))
{
JsonSerializer serializer = new JsonSerializer();
serializer.NullValueHandling =
NullValueHandling.Ignore;
List<response> returnvalue =
serializer.Deserialize<List<response>>(jr);
}
}
}
}
2011/9/4 abdullah muhammad <[email protected]>
> berhasil,
> makasih banyak pak putu *penjelasannya mantap euy ;)
>
>
> Thanks,
>
>
> Abdullah
>
> hhtp://abdullah21.wordpress.com
> --------------------------------------------
> Twitter || Fb || Koprol || ==> abdullah21
>
>
> > Date: Sun, 4 Sep 2011 10:45:26 +0700
> > From: [email protected]
>
> > To: [email protected]
> > Subject: Re: [Mugi] Tanya Parsing Json C#
> >
> > Hallo,
> > dibawah beberapa komen thd kode anda.
> >
> > 2011/9/3 abdullah muhammad <[email protected]>:
> > >
> > > [DataMember]
> > > public string pengarang { get; set; }
> > >
> > >
> > > public detailedAddress[] addresses;
> > > }
> >
> > Field addresses, array ini belum pernah di buat instance-nya.
> > kode: data.adresses[i]. bla...bla... akan error!
> > (pada method: client_OpenReadCompleted)
> >
> > > void client_OpenReadCompleted(object sender,
> > > OpenReadCompletedEventArgs e)
> > > {
> > > try
> > > {
> > > var serializer = new
> > > DataContractJsonSerializer(typeof(detailedAddress));
> > > detailedAddress data =
> > > (detailedAddress)serializer.ReadObject(e.Result);
> > >
> > > for (int i = 0; i <= data.addresses.Length - 1; i++)
> > > {
> > >
> > > LBDetailKisah.Items.Add(data.addresses[i].judul.ToString());
> > >
> > > LBDetailKisah.Items.Add(data.addresses[i].pengarang.ToString());
> > > LBDetailKisah.Items.Add("-----------------");
> > >
> > > }
> > > }
> >
> > Masalah ada pada kode dalam method diatas:
> > 1. Kalau diakses http://labs.abdullah21.net/api/show_all_kisah.php
> > yang dikembalikan adalah *Kumpulan object* bukan *sebuah object*,
> > sehingga type yang diberikan ke Serializer harusnya dalam bentuk
> collection.
> >
> > 2. Penulisan i <= data.addresses.Length - 1 pada *for loop* jika object
> > addresses belum pernah dibuat akan menimbulkan error.
> > Kemudian, pengecekan kondisi umumnya ditulis:
> > i < data.addresses.Length (tanpa ada pengurangan, yang
> > menyebabkan penurunan performa, terutama jika item-nya banyak).
> >
> > 3. Penulisan: data.addresses[i].judul.ToString(), tidak perlu
> > karena field *judul* sudah dalam bentuk string (berlaku
> > juga untuk field2 lainya)
> >
> > Berikut kode parsingnya:
> > var serializer = new
> DataContractJsonSerializer(typeof(List<detailedAddress>));
> > var listOfObject = serializer.ReadObject(e.Result) as
> List<detailedAddress>;
> > foreach (var item in listOfObject)
> > {
> > LBDetailKisah.Items.Add(item.judul);
> > LBDetailKisah.Items.Add(item.pengarang);
> > LBDetailKisah.Items.Add("-----------------");
> > }
> >
> >
> > salam,
> > putu
> > _______________________________________________
> > To unsubscribe from this group, send an email to:
> > [email protected]
> > Get Free 5 GB mailbox Check this http://www.mugi.or.id
> >
> > Powered by bisnismedia.com
> > www.x-phones.com (all about ponsel)
>
> _______________________________________________
> To unsubscribe from this group, send an email to:
> [email protected]
> Get Free 5 GB mailbox Check this http://www.mugi.or.id
>
> Powered by bisnismedia.com
> www.x-phones.com (all about ponsel)
>
--
Puja Pramudya
@poedja_p | about.me/pujapramudya
http://www.pujalabs.net
_______________________________________________
To unsubscribe from this group, send an email to:
[email protected]
Get Free 5 GB mailbox Check this http://www.mugi.or.id
Powered by bisnismedia.com
www.x-phones.com (all about ponsel)