无法访问json类的变量。 C#

时间:2016-04-30 15:18:22

标签: c# json twitch json2csharp

我最近尝试过使用twitch json api,我从未有过使用json的经验所以这是一个很好的挑战,但后来我使用了json2csharp.com并将json字符串转换为这样的类:

class TwitchAPI
{
    public class Preview
    {
        public string small { get; set; }
        public string medium { get; set; }
        public string large { get; set; }
        public string template { get; set; }
    }

    public class Links
    {
        public string self { get; set; }
        public string follows { get; set; }
        public string commercial { get; set; }
        public string stream_key { get; set; }
        public string chat { get; set; }
        public string features { get; set; }
        public string subscriptions { get; set; }
        public string editors { get; set; }
        public string teams { get; set; }
        public string videos { get; set; }
    }

    public class Channel
    {
        public bool mature { get; set; }
        public string status { get; set; }
        public string broadcaster_language { get; set; }
        public string display_name { get; set; }
        public string game { get; set; }
        public string language { get; set; }
        public int _id { get; set; }
        public string name { get; set; }
        public string created_at { get; set; }
        public string updated_at { get; set; }
        public object delay { get; set; }
        public string logo { get; set; }
        public object banner { get; set; }
        public string video_banner { get; set; }
        public object background { get; set; }
        public string profile_banner { get; set; }
        public object profile_banner_background_color { get; set; }
        public bool partner { get; set; }
        public string url { get; set; }
        public int views { get; set; }
        public int followers { get; set; }
    }

    public class Stream
    {
        public long _id { get; set; }
        public string game { get; set; }
        public int viewers { get; set; }
        public string created_at { get; set; }
        public int video_height { get; set; }
        public int average_fps { get; set; }
        public int delay { get; set; }
        public bool is_playlist { get; set; }
    }
}

现在我尝试访问观众,但它不让我。我是这样做的。

TwitchAPI twitchapi = new TwitchAPI();
string viewers = "" + twitchapi.Stream.viewers;

2 个答案:

答案 0 :(得分:1)

TwitchAPITwitchAPI的名称 - 您根本没有在TwitchAPI.Stream stream = new TwitchAPI.Stream(); string viewers = stream.viewers.ToString(); 类中声明任何字段,就我们而言可以看到。所以你可以使用:

TwitchAPI

...但目前没有与start_time = ${e://Field/Q_TotalDuration} 的实例关联的流。

(顺便说一句,我相信有很多Twitter API客户端可用......如果您的目标是使用Twitter做某事而不是建立自己的Twitter API,我建议使用现有的。)

答案 1 :(得分:0)

如果要访问Stream,则需要创建实例。

如果你想像你那样访问,那么在TwitchApi类下创建一个属性,如下所示

public Stream Stream
{
    get;
    set;
}

然后你可以访问它,

TwitchAPI twitchapi = new TwitchAPI();
string viewers = "" + twitchapi.Stream.viewers;

此外,您可以避免使用嵌套类,除非您计划实现某些特定内容。