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();
我正在尝试制作一个从“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();