使用 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);
        }
    }

提前感谢!

使用 Windows Phone 7 解析 JSON 对象

我从未使用过这个,但快速谷歌将我带到MSDN上的这个页面 - http://msdn.microsoft.com/en-us/library/system.net.webclient.openreadcompleted.aspx

这应该告诉您它不起作用的原因 - 因为您正在使用读取事件进行写入操作。您应该按照 MSDN 上的此页面将OpenWriteCompletedEventHandlerOpenWriteAsync一起使用 - http://msdn.microsoft.com/en-us/library/system.net.webclient.openwritecompleted.aspx