从 Twitch 获取价值 API

Get value from Twitch API

目前正在尝试制作一个系统,该系统将根据按钮上的流光是否处于活动状态来更改按钮的颜色。我有办法将 json 字符串下载到变量中,但我不知道该怎么做。我知道我必须检查 json 输出中的变量 "stream" 是否为 null,这意味着流媒体处于离线状态,但我对如何执行此操作一无所知。

我将使用我目前拥有的代码对其进行编辑。我得到了 json 被正确解析,做 r.stream 给了我适当的数据,但我不知道如何确定流是否是实时的。这应该检查将刷新数据的按钮按下。

    private void Refresh_Click(object sender, RoutedEventArgs e)
    {
        string url = @"https://api.twitch.tv/kraken/streams/camoduck?client_id=xskte44y2wfqin464ayecyc09nikcj";

        var json = new WebClient().DownloadString(url);

        Rootobject r = JsonConvert.DeserializeObject<Rootobject>(json);
        Console.WriteLine(r.stream);
        if r.stream.game = "Grand Theft Auto V"
        {
            _1GUnit1.Background = Brushes.Red;
        }


    }

如果你不提供更多关于你的情况不起作用的细节,我无法给出深入的解释或指导。

我可以建议您使用 API 包装器,例如TwitchLib。 这应该可以帮助您入门,并且应该为您的案例提供足够的文档。

您应该多阅读 Twitch API 并搜索示例。当流处于离线状态时,考虑放入某种模板,因为请求中没有要解析的数据。当流在线时,您将有权访问流对象的属性。例如,如果您的成功函数 returns data,您可以将结果分配为:

game = data.stream.game;
logo = data.stream.channel.logo;
name = data.stream.channel.name;
url = data.stream.channel.url;
stream = data.stream.stream_type;

这假设您已经设置了适当的变量(您没有提供任何代码)。

我还建议您花一些时间学习如何在浏览器中进行调试。更具体地说,在这种情况下,了解如何检查结果数据。这将揭开对象中的神秘面纱,因为您将看到数据及其属性等。

看看下面的堆栈 post: Inspecting large JSON data in Chrome

.......
var json = new WebClient().DownloadString(url);
var r = JsonConvert.DeserializeObject<Rootobject>(json); 
Console.WriteLine(r.stream);
if (r.stream==null) //How a null check can be done
{
    _1GUnit1.Background = Brushes.Red;
}

顺便说一句:如果您使用的是“http://json2csharp.com/”,它可能是 RootObject 而不是 Rootobject