如何从Windows Phone 8.1 app中的URL快速获取JSON数据?

时间:2015-10-10 06:37:36

标签: c# json windows-phone-8 listbox windows-phone-8.1

我正在开发一款Windows手机应用程序。

在这个应用程序中,我从服务URL获取JSON数据并绑定到列表框。而且,在这个JSON数据中有2500个城市。这些城市来自服务和绑定到列表框需要5分钟的时间。

那么如何从服务中快速获取数据?请帮帮我。

以下是代码:

 public async void insertcities()
        {
            try
            {


                await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
                {


                    var busclient = new Newpavanapp.JsonWebClient();

                    var Busresp1 = await busclient.DoRequestAsync(Url.weburl + "getCities");
                    string Busresult1 = Busresp1.ReadToEnd();
                    JArray BusjsonArray = JArray.Parse(Busresult1);

                    for (int j = 0; j < BusjsonArray.Count; j++)
                    {

                        JObject jobj = (JObject)BusjsonArray[j];

                        string id = (string)jobj["cityid"];
                        string cityname = (string)jobj["cityname"];



                        city cit = new city();
                        cit.cityname = cityname;

                        Fromcityname1.Items.Add(cityname);
                        Tocityname1.Items.Add(cityname);
                        Db_Helper.Insert(new Buscities(id, cityname));
                        UserProfileList.Add(cit);

                        //  citieslist.Add(cityname);

                    }



                });

1 个答案:

答案 0 :(得分:2)

好的,首先:您的代码片段不足以重现问题,但我认为您获取数据的代码很好并且您有绑定问题。

您写道:

  

这些城市来自服务,绑定到列表框需要5分钟时间。

检查,无需绑定即可下载数据所需的时间。因为可能绑定是最耗时的操作。如果您尝试绑定2500个元素并且不使用虚拟化,则可能是Windows手机上的问题。尝试使用listview with virtualization (it can be helpful)

@Update(17:30 - 12.10.2015)

  

是的。快速下载数据。但是每当绑定数据的时候   只花时间。然后我该怎么办。请帮助我。请给我   任何样本。

好的,我认为: 你不应该同时绑定所有元素。阅读列表框中的增量加载(Load more items into ListBox when scrolled to bottom)。您可以下载所有项目,并仅将其中一部分添加到itemssource,并在用户滚动后再加载更多内容。