【问题标题】:Iterating through Twitch Json遍历 Twitch Json
【发布时间】:2015-06-17 15:37:45
【问题描述】:

我还不是很擅长这个,不确定我的主题是否准确地描述了我需要什么。我知道它可能已经回答了,我很难理解答案,因为它们并不直接适用于我的数据。我正在尝试弄清楚如何遍历此 URL 中的数据。

http://tmi.twitch.tv/group/user/twitch/chatters

这是我一直在使用的。

Dim url = "http://tmi.twitch.tv/group/user/" & ConnectionInformation.Channel.TrimStart("#") & "/chatters"
Dim json As String = Nothing
Dim wc As New WebClient()
json = wc.DownloadString(url)

Dim root As JToken = JToken.Parse(json)
For Each item As JToken In root("chatters")
'I've tried several things here and I can't find a good way to iterate through the viewers found here.        
Next

我想我无法让观众进入一个集合以便我可以遍历它们,有人可以在这里指出我正确的方向吗?

谢谢。

【问题讨论】:

    标签: json vb.net iteration twitch


    【解决方案1】:

    “Chatters”实际上是根对象中的一个类型。如果您要创建类,它们将如下所示:

    Public Class RootChatter
        Public Property _links As _Links
        Public Property chatter_count As Integer
        Public Property chatters As Chatters
    End Class
    
    Public Class _Links
    End Class
    
    Public Class Chatters
        Public Property moderators As String()
        Public Property staff As String()
        Public Property admins As String()
        Public Property global_mods As String()
        Public Property viewers As String()
    End Class
    

    Viewers 是 Chatter 属性 (Root.Chatters.Viewers) 中的一个数组。没有类:

    Dim root As JToken = JToken.Parse(jstr)
    Dim chatters = root("chatters")("viewers")
    
    For n As Integer = 0 To chatters.Count - 1
        Console.WriteLine(chatters(n))
    Next
    

    输出:

    04paynem
    0晨星0
    0rchlann
    0riginus
    10108abc

    如果你要反序列化到类:

    Dim jc = JsonConvert.DeserializeObject(Of RootChatter)(jstr)
    Dim viewers = jc.chatters.viewers
    

    【讨论】:

    • 这应该是一个不可思议的帮助。它甚至有助于解释其他一些线程在谈论什么。我没有意识到我看到了两种剥猫皮的方法。
    • 我认为以类格式查看它总是有助于理解关系等,即使您打算使用JToken.Parse。对我来说,它似乎比编码的 JSON 字符串更容易阅读。如果您将 JSON 复制到剪贴板,编辑菜单 - 选择性粘贴 - 将 JSON 粘贴为类 将为您创建类 - 有时您需要调整一些内容,但它为您提供了一个快速的起点。
    • 是的,看到这些关系确实有帮助,但你让我对编辑菜单感到迷惑。您是在谈论 Visual Studio 内部吗?我没有看到这些粘贴特殊选项。
    • 如果剪贴板上有一个 JSON 字符串(数据),VS 将根据该字符串创建类。也许它不在您的版本中 - 我有 2012,但不确定何时添加。 jsonutils.com 是一个在线转换器 - VB 或 C# 类
    猜你喜欢
    • 2018-11-03
    • 2021-01-11
    • 2011-10-05
    • 1970-01-01
    • 2015-01-11
    • 2017-01-10
    • 2011-02-05
    相关资源
    最近更新 更多