Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net json.net解析结果_Asp.net_Vb.net_Json.net - Fatal编程技术网

asp.net json.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 =

我不熟悉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 = 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,这会更好。