使用 Windows Phone 7 解析 JSON 对象
本文关键字:JSON 对象 解析 Windows Phone 使用 | 更新日期: 2023-09-27 18:33:30
我正在尝试从我创建的 Uri 中读取并将其显示在 Windows Phone 7 应用程序上。(我正在做本教程:http://msdn.microsoft.com/en-us/windowsmobile/Video/hh237494)。
我的问题是程序没有进入OpenReadCompleteEventHandler,我不知道为什么。(我放置消息框以便调试,我发现该程序没有进入OpenReadCompleteEventHandler)。以下是相关代码:
void myButton_Click(object sender, RoutedEventArgs e)
{
try
{
WebClient webClient = new WebClient();
Uri uri = new Uri("http://localhost:44705/Service1.svc/GetAllBrands");
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
try
{
webClient.OpenWriteAsync(uri);
MessageBox.Show("opening sucsseded");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
MessageBox.Show("OpenRead Handler");
// OpenWriteCompletedEventArgs temp = (OpenWriteCompletedEventArgs)e;
DataContractJsonSerializer serializer = null;
try
{
serializer = new DataContractJsonSerializer(typeof(ObservableCollection<Brand>));
ObservableCollection<Brand> Brands = serializer.ReadObject(e.Result) as ObservableCollection<Brand>;
foreach (Brand b in Brands)
{
int id = b.BrandId;
string name = b.BrandName;
listBrands.Items.Add(id + " " + name);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
提前感谢!
我从未使用过这个,但快速谷歌将我带到MSDN上的这个页面 - http://msdn.microsoft.com/en-us/library/system.net.webclient.openreadcompleted.aspx
这应该告诉您它不起作用的原因 - 因为您正在使用读取事件进行写入操作。您应该按照 MSDN 上的此页面将OpenWriteCompletedEventHandler
与OpenWriteAsync
一起使用 - http://msdn.microsoft.com/en-us/library/system.net.webclient.openwritecompleted.aspx