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