【问题标题】:Get value from Twitch API从 Twitch API 获取价值
【发布时间】:2017-08-10 19:36:25
【问题描述】:

目前正在尝试制作一个系统,该系统将根据按钮上的流媒体是否处于活动状态来更改按钮的颜色。我有办法将 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;
        }


    }

【问题讨论】:

  • 使用这个未知站点。 google.com/search?q=c%23+how+to+parse+a+json
  • 在过去的几个小时里,我一直在谷歌上搜索不适合我的不同方式。 @L.B
  • that aren't working for me。你认为你有一个非常特殊的情况?然后显示您的代码。
  • @MattArtist 从您的代码示例看来,您对 C# 缺乏基本的了解。我建议你在尝试做一些更高级的事情之前复习一下基础知识,比如使用 Web API。您找到的示例和文档可能会更有意义。

标签: c# json twitch


【解决方案1】:
.......
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

【讨论】:

  • 这非常有效。我是 C# 的新手,可能应该提到这一点,我试图弄清楚如何与空值进行比较。 +1 谢谢。
【解决方案2】:

如果您不提供更多关于您的情况不起作用的详细信息,我无法提供深入的解释或指导。

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

【讨论】:

    【解决方案3】:

    您应该更多地阅读 Twitch API 并搜索示例。当流离线时,考虑放入某种模板,因为请求中没有要解析的数据。当流在线时,您将可以访问流对象的属性。例如,如果您的成功函数返回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;
    

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

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

    查看以下 Stack 帖子: Inspecting large JSON data in Chrome

    【讨论】:

    • 我添加了我的代码和我目前的情况。如您所见,它根本不起作用。但这就是我得到的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多