【问题标题】:Appending json data to listview c#将json数据附加到listview c#
【发布时间】:2015-09-04 15:32:01
【问题描述】:

我是 C# 新手,想将以下数据添加到列表视图 http://live.glidernet.org/flightlog/index.php?a=EHDL&s=QFE&u=M&z=2&p=&d=30052015&j 我想为每个航班创建一个列表视图项,我设法通过以下代码添加了一个子项。

ListViewItem lvi = new ListViewItem("Foo bar");
lvi.SubItems.Add("Foo bar");
lvi.SubItems.Add("Foo bar");
FlarmListView.Items.Add(lvi);

如何将 JSON 数据解析到此列表视图?

【问题讨论】:

    标签: c# json winforms listview


    【解决方案1】:

    如果你使用Json.Net,你可以这样做:

    WebClient client = new WebClient();
    string json = client.DownloadString("http://live.glidernet.org/flightlog/index.php?a=EHDL&s=QFE&u=M&z=2&p=&d=30052015&j");
    
    JObject data = JObject.Parse(json);
    
    // create an array of ListViewItems from the JSON
    var items = data["flights"]
        .Children<JObject>()
        .Select(jo => new ListViewItem(new string[] 
        {
            (string)jo["glider"],
            (string)jo["takeoff"],
            (string)jo["glider_landing"],
            (string)jo["glider_time"]
        }))
        .ToArray();
    
    FlarmListView.View = View.Details;
    FlarmListView.FullRowSelect = true;
    FlarmListView.Columns.Add("Glider ID", 70);
    FlarmListView.Columns.Add("Takeoff Time", 85);
    FlarmListView.Columns.Add("Landing Time", 85);
    FlarmListView.Columns.Add("Time In Air", 85);
    FlarmListView.Items.AddRange(items);
    

    【讨论】:

    • 谢谢完美答案但是如果我们有一个像这样{ "data": { "day1": { "mId": "XgzhugCNT", "pageId": "2", "votes": "2,063", "language": "English" }, "day2": { "mId": "9ilrMdX15S", "pageId": "10", "votes": "2,893", "language": "French" }, "day3": { "mId": "9ilert415S", "pageId": "8", "votes": "2,343", "language": "English" } } }@brain-rogers 结构的 JSON 呢
    • @SerenityEmmanuel 在这里看小提琴:dotnetfiddle.net/xcIBt7
    • 非常感谢非常感谢
    猜你喜欢
    • 2013-03-31
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多