C# 使用 JSON 从 twitch api 获取最新关注者的数据

C# Get data from twitch api for latest follower using JSON

我正在尝试制作一个从“https://api.twitch.tv/kraken/channels/mepphotv/follows?direction=DESC&limit=1&offset=0”获取最新关注者的应用程序并将其保存到 .txt 文件。我知道如何将字符串 'display_name' 保存到 txt 文件,但我不知道如何获取该数据 (display_name)。我在 Visual Studio 上安装了 JSON.NET 并在网上搜索了答案,但没有成功。谁能帮帮我。

定义以下 类,改编自将 JSON 发布到 http://json2csharp.com/ 的结果,方法是对 _links 属性使用 Dictionary<string, string>DateTime 日期:

public class User
{
    public long _id { get; set; }
    public string name { get; set; }
    public DateTime created_at { get; set; }
    public DateTime updated_at { get; set; }
    public Dictionary<string, string> _links { get; set; }
    public string display_name { get; set; }
    public object logo { get; set; }
    public object bio { get; set; }
    public string type { get; set; }
}

public class Follow
{
    public DateTime created_at { get; set; }
    public Dictionary<string, string> _links { get; set; }
    public bool notifications { get; set; }
    public User user { get; set; }
}

public class RootObject
{
    public RootObject()
    {
        this.follows = new List<Follow>();
    }
    public List<Follow> follows { get; set; }
    public int _total { get; set; }
    public Dictionary<string, string> _links { get; set; }
}

然后,要反序列化,请执行:

        var root = JsonConvert.DeserializeObject<RootObject>(DownloadData);

要获取最新的关注者(按 created_at 日期排序),请执行以下操作:

        var latestFollow = root.follows.Aggregate((Follow)null, (f1, f2) => (f1 == null || f2 == null ? f1 ?? f2 : f2.created_at > f1.created_at ? f2 : f1));
        var latestName = latestFollow.user.display_name;

要按 created_at 日期对所有关注者进行反向排序,请执行:

        var sortedFollowers = root.follows.OrderByDescending(f => f.created_at).ToList();