使用JSON.NET来填充体育赛事列表



新手。

我有一个c# Windows演示表单程序,我试图添加一个方法,下载JSON网页的字符串,然后创建事件列表(每个都有一个团队参加的列表)从页面中的数据。唯一的问题是JSON。. NET文档让我感到困惑,我似乎无法掌握JSON格式。

作为参考,该方法有两个部分:1)获取"官方"事件列表(如果你看,你会注意到每个事件项中都有一个"官方"布尔值),并创建一个包含每个事件"键"的字符串列表(每个事件项中的第一个值)2)对于每个事件"key",制作参加每个事件的团队列表,并根据他们的"team_number"对每个团队进行排序

这是一个事件列表的测试页面。下面是来自一个事件的团队列表的测试页面。

我对JSON最大的问题。. NET库/文档是,我似乎无法弄清楚如何采取每个项目,并从它隔离一个特定的值。例如,每个事件项中都有一大堆值,但我只需要"official"值和"key"值。与团队相同,我只需要每个项目的"team_number"值。

你们能帮我多理解一点这个库吗,或者如果这个库不适合这份工作,你们甚至可以给我指出正确的库吗?

首先要做的是使用json2sharp生成代表JSON的类。

public class Event
{
    public string key { get; set; }
    public string website { get; set; }
    public bool official { get; set; }
    public string end_date { get; set; }
    public string name { get; set; }
    public string short_name { get; set; }
    public string facebook_eid { get; set; }
    public string event_district_string { get; set; }
    public string venue_address { get; set; }
    public int? event_district { get; set; }
    public string location { get; set; }
    public string event_code { get; set; }
    public int year { get; set; }
    public List<object> webcast { get; set; }
    public List<object> alliances { get; set; }
    public string event_type_string { get; set; }
    public string start_date { get; set; }
    public int event_type { get; set; }
}
public class Team
{
    public string website { get; set; }
    public string name { get; set; }
    public string locality { get; set; }
    public int rookie_year { get; set; }
    public string region { get; set; }
    public int team_number { get; set; }
    public string location { get; set; }
    public string key { get; set; }
    public string country_name { get; set; }
    public string nickname { get; set; }
}

现在您可以将JSON反序列化为这些对象的列表,并使用LINQ查询列表中需要的内容。我从记忆中做这个,所以它可能需要一些调整工作。

var events = JsonConvert.Deserialize<IEnumerable<Event>>( eventJson );
var officialEvents = events.Where( e => e.official )
    .Select( e => new { e.key, e.official } );

相关内容

  • 没有找到相关文章

最新更新