首页 > 解决方案 > 在 Listview 上显示多个 JsonObject

问题描述

我有一个来自服务器的 Json,如下所示:

{    
"data": {
            "komik_popular": {
                "title": "Yei! Komik Awas Nyamuk Jahat jadi literasi terpopuler minggu ini lho!"
            },
            "buku_baru": {
                "title": "Ada buku baru nih, Katalog Prasekolah"
            }
        },
    }

我想在listview上显示json,但我Debug.Writeline("judul: " + highlight.Title)先试试

代码:

Highlight highlight = new Highlight();
                    string title = "";
                    string urlPath = link;
                    var httpClient = new HttpClient(new HttpClientHandler());
 var values = new List<KeyValuePair<string, string>>
                    {
                        new KeyValuePair<string, string>("SCH-API-KEY", "SCH_KEnaBiDeplebt")
                    };
                    var response = await httpClient.PostAsync(urlPath, new FormUrlEncodedContent(values));
                    response.EnsureSuccessStatusCode();
 string jsonText = await response.Content.ReadAsStringAsync();
                    try
                    {
                        JsonObject jsonObject = JsonObject.Parse(jsonText);
                        JsonObject jsonData = jsonObject["data"].GetObject();
                        JsonObject bukuBObject = jsonData.ContainsKey("buku_baru") && jsonData["buku_baru"] != null ? jsonData["buku_baru"].GetObject() : JsonObject.Parse("");
                        try 
                        { 
                            title = bukuBObject["title"].GetString();
                        }
                        catch
                        {

                        }

                        JsonObject komikPObject = jsonData.ContainsKey("komik_popular") && jsonData["komik_popular"] != null ? jsonData["komik_popular"].GetObject() : JsonObject.Parse("");
                        try
                        {
                            title = komikPObject["title"].GetString();
                        }
                        catch
                        {

                        }
                        highlight.Title = title;
                        Debug.WriteLine("judul: " + highlight.Title);
}

亮点.cs:

class Highlight
    {
        public string Title { get; set; }
    }

我遇到了一个问题,当我尝试仅显示“komik_popular”上的标题时,我希望显示“komik_popular”和“buku_baru”中的所有数据。如何处理?

标签: c#jsonuwp

解决方案


private List<Highlight > HighlightList = new List<Highlight>();

                   string urlPath = link;
                    var httpClient = new HttpClient(new HttpClientHandler());
 var values = new List<KeyValuePair<string, string>>
                    {
                        new KeyValuePair<string, string>("SCH-API-KEY", "SCH_KEnaBiDeplebt")
                    };
                    var response = await httpClient.PostAsync(urlPath, new FormUrlEncodedContent(values));
                    response.EnsureSuccessStatusCode();
 string jsonText = await response.Content.ReadAsStringAsync();
                    try
                    {
                        JsonObject jsonObject = JsonObject.Parse(jsonText);
                        JsonObject jsonData = jsonObject["data"].GetObject();

                        JsonObject komikPObject = jsonData.ContainsKey("komik_popular") && jsonData["komik_popular"] != null ? jsonData["komik_popular"].GetObject() : JsonObject.Parse("");
                        try
                        {
                            Highlight highlight = new Highlight();

                           string title = "";

                            title = komikPObject["title"].GetString();

                            HighlightList.Add(highlight);
                        }
                        catch
                        {

                        }
                        JsonObject bukuBObject = jsonData.ContainsKey("buku_baru") && jsonData["buku_baru"] != null ? jsonData["buku_baru"].GetObject() : JsonObject.Parse("");
                        try 
                        { 
                          Highlight highlight = new Highlight();

                           string title = "";

                            title = bukuBObject["title"].GetString();

                          HighlightList.Add(highlight);
                        }
                        catch
                        {

                        }


                  }
                  catch
                   {
                    }
                       foreach( Highlight items in HighlightList)
                      {

                        Debug.WriteLine("judul: " + items .Title);
                      }
}

推荐阅读