遍历Twitch Json

遍历Twitch Json,json,vb.net,iteration,twitch,Json,Vb.net,Iteration,Twitch,我还不是很擅长这个,不确定我的主题是否准确地描述了我需要什么。我知道答案可能已经给出,我很难理解答案,因为它们并不直接适用于我的数据。我正在试图弄清楚如何遍历此URL中的数据 这就是我一直在用的 Dim url = "http://tmi.twitch.tv/group/user/" & ConnectionInformation.Channel.TrimStart("#") & "/chatters" Dim json As String = Nothing Dim wc A

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

这就是我一直在用的

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
我想我很难把观众放在一个集合中,这样我就可以反复浏览他们,有人能给我指出正确的方向吗

谢谢。

“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
查看器是Chatters属性(
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
0rclann
0riginus
10108abc

如果要反序列化到类:

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

这应该是一个难以置信的帮助。它甚至有助于解释其他一些线程在谈论什么。我没有意识到我看到了两种剥猫皮的方法。我认为查看猫皮的类格式来理解它们之间的关系等总是有帮助的,即使你要使用
JToken.Parse
。对我来说,它似乎比编码的JSON字符串更容易阅读。如果你将JSON复制到剪贴板,编辑菜单-粘贴特殊-粘贴JSON作为类将为你创建类-有时你必须调整内容,但它为你提供了一个快速的起点。是的,它确实有助于查看这些关系,但你失去了我对编辑菜单的了解。你是说在VisualStudio内部吗?我看不到这些粘贴特殊选项。如果剪贴板上有JSON字符串(数据),VS将从该字符串创建类。也许它不在你的版本中-我有2012,但不确定它是什么时候添加的。是一个在线转换器-VB或C#类