将Json Singleton转换为List Phone 81 UAP

本文关键字:Phone UAP List Json Singleton 转换 | 更新日期: 2023-09-27 18:07:15

我使用http客户端从web服务返回json响应。我在这里遵循的例子来自代码项目教程。然而,它的例子只返回到一个var,它是为在屏幕上调用的方法创建的,我正在改变它从一个类中调用。为了安全起见,我已经删除了web服务。

我的主要问题是我如何改变这个函数返回电影院的列表,而不是var变量,我有一个类创建这样的。我尝试将var更改为列表,但我注意到json.net处理此列表,所以我需要将var作为已知对象返回,而不是我认为?

public class City
{
        public string id { get; set; }
        public string timing_title { get; set; }
}
public class Citys
{
        public List<City> city { get; set; }
}

我只是不知道该怎么转换它,所以它返回一个城市列表供我在函数中使用。

这是返回的json数据示例列表。

{"城市":[{" id ": " 5521 "、"timing_title":"拉合尔"},{" id ": " 5517 ", " timing_title ": "卡拉奇"},{" id ": " 5538 "、"timing_title":"巴基斯坦"},{" id ": " 5535 "、"timing_title":"拉瓦尔品第"},{" id ": " 5518 ", " timing_title ":海德拉巴"},{" id ": " 5512 "、"timing_title":"费萨尔巴德"},{" id ": " 8028 ", " timing_title ": "古吉兰瓦拉"},{" id ": " 8027 "、"timing_title":"Gujrat"}]}

public  async void GetCinemasList()
{
    try
    {
        using (HttpClient client = new HttpClient())
        {
            client.BaseAddress = new Uri("webserviceurl");
            var url = "index.php/webservice/upcoming_movie";
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = await client.GetAsync(url);
            if (response.IsSuccessStatusCode)
            {
                var data = response.Content.ReadAsStringAsync();
                var cityData = JsonConvert.DeserializeObject<City>(data.Result.ToString());
            }
        }
    }
    catch (Exception ex)
    {
        // MessageBox.Show("Some Error Occured");
    }
}

将Json Singleton转换为List Phone 81 UAP

您有一个持有JSON值的string

你可以像这样解析和迭代JSON值:

var data = "{'"city'":[{'"id'":'"5521'",'"timing_title'":'"Lahore'"},{'"id'":'"5517'",'"timing_title'":'"Karachi'"},{'"id'":'"5538'",'"timing_title'":'"Islamabad'"},{'"id'":'"5535'",'"timing_title'":'"Rawalpindi'"},{'"id'":'"5518'",'"timing_title'":'"Hyderabad'"},{'"id'":'"5512'",'"timing_title'":'"Faisalabad'"},{'"id'":'"8028'",'"timing_title'":'"Gujranwala'"},{'"id'":'"8027'",'"timing_title'":'"Gujrat'"}]}";
JsonObject rootObject;
if (JsonObject.TryParse(data, out rootObject))
{
    JsonArray cityArray = rootObject.GetNamedArray("city");
    foreach (var jsonValue in cityArray)
    {
        JsonObject cityObject = jsonValue.GetObject();
        Debug.WriteLine(cityObject.GetNamedString("timing_title"));
    }
}
else
{
    // Invalid JSON data.
}
输出:

Lahore
Karachi
Islamabad
Rawalpindi
Hyderabad
Faisalabad
Gujranwala
Gujrat