2015-06-17 3 views
1

Я еще не очень хорош в этом, не уверен, что мой предмет даже точно описывает то, что мне нужно. Я знаю, что на это, вероятно, был дан ответ, мне трудно понять ответы, поскольку они напрямую не применяются к моим данным. Я пытаюсь выяснить, как я могу перебирать данные в этом URL-адресе.Итерация через Twitch Json

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 

Я предполагаю, что у меня возникают проблемы при получении зрителей в коллекции, так что я могу перебирать их, кто-то может мне точку в правильном направлении здесь?

спасибо.

ответ

1

«Чаттеры» на самом деле является типом в корневом объекте. Если вы должны были создать классы, они будут выглядеть следующим образом:

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 

Зрители массив в болтуны собственности (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
0morningstar0
0rchlann
0riginus
10108abc

Если вы десериализации к классам:

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

Это должно быть невероятной помощью. Это даже помогает объяснить, о чем говорили некоторые другие темы. Я не понимал, что вижу два способа скинирования кошки. – Josh

+0

Я думаю, что это всегда помогает просмотреть его в формате класса, чтобы понять отношения и т. Д., Даже если вы собираетесь использовать 'JToken.Parse'. Мне просто легче читать, чем закодированная строка JSON. Если вы скопируете свой JSON в буфер обмена, ** Edit Menu - Paste Special - Paste JSON as Classes ** создаст для вас классы - иногда вам приходится настраивать материал, но это дает вам быструю отправную точку. – Plutonix

+0

Да, это помогает увидеть эти отношения, но вы потеряли меня в меню редактирования. Вы говорите в Visual Studio? Я не вижу этих специальных опций Пасты. – Josh

Смежные вопросы