asp.net json.net解析结果
我不熟悉JSON数据解析。到目前为止,这是我通过网络研究得出的结论: 要分析的数据: 我正在尝试使用JSON.NET/VB.NET框架来实现这一点:asp.net json.net解析结果,asp.net,vb.net,json.net,Asp.net,Vb.net,Json.net,我不熟悉JSON数据解析。到目前为止,这是我通过网络研究得出的结论: 要分析的数据: 我正在尝试使用JSON.NET/VB.NET框架来实现这一点: Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq '(inside a function) Dim json As JObject = JObject.Parse("https://api.twitch.tv/kraken/streams/") strResult As String =
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
'(inside a function)
Dim json As JObject = JObject.Parse("https://api.twitch.tv/kraken/streams/")
strResult As String = json.SelectToken("streams").SelectToken("game")
它会返回一条错误消息,我确信我的结构不对。我怎样才能做到这一点?然后,我想循环返回数组的结果
谢谢,这应该只是一个概念性的示例-控制台,而不是asp.net:
Dim json As JObject = _
JObject.Parse(New WebClient().DownloadString("https://api.twitch.tv/kraken/streams/"))
If json IsNot Nothing AndAlso json.HasValues Then
If json.SelectTokens("streams") IsNot Nothing _
AndAlso json.SelectTokens("streams").Children().Any() Then
Dim games() As JToken = json.SelectTokens("streams").Children().ToArray()
For Each child As JToken In games
Console.WriteLine("game title: {0} game id: {1} for mature audience? {2}", _
child.Item("game"), child.Item("_id"), child.Item("channel").Item("mature"))
Console.WriteLine()
Next
Console.ReadLine()
End If
End If
Hth….这是在EdSF的帮助下简化的代码,适用于像我这样的json新手:
Dim apiURL As String = "https://api.twitch.tv/kraken/streams?limit=10&offset=0"
Dim json As JObject = JObject.Parse(New WebClient().DownloadString(apiURL))
If json IsNot Nothing AndAlso json.HasValues Then
If json.SelectTokens("streams") IsNot Nothing AndAlso json.SelectTokens("streams").Children().Any() Then
Dim games() As JToken = json.SelectTokens("streams").Children().ToArray()
For Each child As JToken In games
'Console.WriteLine("game title: {0} game id: {1} for mature audience? {2}", child.Item("game"), child.Item("_id"), child.Item("channel").Item("mature"))
'Console.WriteLine()
lblMensagemSucesso.Text &= "_id=" & child.Item("_id").ToString() & "<br>"
lblMensagemSucesso.Text &= "game=" & child.Item("game").ToString() & "<br>"
lblMensagemSucesso.Text &= "viewers=" & child.Item("viewers").ToString() & "<br>"
lblMensagemSucesso.Text &= "preview=" & child.Item("preview").ToString() & "<br>"
lblMensagemSucesso.Text &= "preview.small=" & child.Item("preview").Item("small").ToString() & "<br>"
lblMensagemSucesso.Text &= "<img src='" & child.Item("preview").Item("small").ToString() & "'/><br>"
lblMensagemSucesso.Text &= "_links.self=" & child.Item("_links").Item("self").ToString() & "<br>"
lblMensagemSucesso.Text &= "channel.status=" & child.Item("channel").Item("status").ToString() & "<br>"
lblMensagemSucesso.Text &= "channel.logo=" & child.Item("channel").Item("logo").ToString() & "<br>"
lblMensagemSucesso.Text &= "<img src='" & child.Item("channel").Item("logo").ToString() & "'/><br>"
lblMensagemSucesso.Text &= "channel.video_banner=" & child.Item("channel").Item("video_banner").ToString() & "<br>"
lblMensagemSucesso.Text &= "channel.url=" & child.Item("channel").Item("url").ToString() & "<br>"
lblMensagemSucesso.Text &= "channel.views=" & child.Item("channel").Item("followers").ToString() & "<br>"
lblMensagemSucesso.Text &= "channel._links.self=" & child.Item("channel").Item("_links").Item("self").ToString() & "<br>"
lblMensagemSucesso.Text &= "channel._links.teams=" & child.Item("channel").Item("_links").Item("teams").ToString() & "<br>"
lblMensagemSucesso.Text &= "<br>"
Next
'Console.ReadLine()
End If
End If
酷…谢谢…这真的帮了我的忙。我为像我这样的新手修改了一些代码,只需要说清楚一点:对于游戏中JToken的每个孩子,lblMensagemSucesso.Text&=game=&child.Itemgame.ToString&lblMensagemSucesso.Text&=channel.views=&child.Itemchannel.Itemfollowers.ToString&lblMensagemSucesso.Text&=channel.\u links.teams=&child.Itemchannel.items.\u links.Itemteams&其次,使用StringBuilder构建字符串并在最后只更新一次UI,而不是连接字符串并更新每行的UI,这会更好。