【问题标题】:How to parse json array in vb.net?如何在 vb.net 中解析 json 数组?
【发布时间】:2025-12-12 17:55:01
【问题描述】:

我正在学习 JSON,我想使用 VB.Net 解析 json 数组并只获取一个值。我找到了这个QUESTION 的答案,但我似乎没有得到我想要的东西。根据提问者,他有这个

"links":[
  {
    "rel":"next",
    "href":"www.google.com"
  }
]

我们可以用它来解析json数组

   links(1).Item("rel")

或者这个

links(1)("rel")

如果我只有这个呢?

[{
    "rel":"next",
    "href":"www.google.com"
}]

如果没有links这个词,我应该如何编码?我知道 links 是表名,不是吗?我尝试了很多可能性,这给了我更多的错误。如果有人能帮助我,我将不胜感激。

附言这与this 不重复,因为我不打算将信息添加到 DataGridView。我在这里想要的是解析一个字段。只得到一个结果,而不是整个列表。

【问题讨论】:

标签: .net arrays json vb.net parsing


【解决方案1】:

你需要使用:

Imports Newtonsoft.Json
JsonConvert.DeserializeObject(Of <Your Class object>)(<JSON String>)

点击此链接Deserialize Json

【讨论】:

    【解决方案2】:

    发现这个可以解析 json,前提是安装了这个library

            Dim token As JToken
            Dim rel
            Dim href
            For Each value As Object In result
                token = JObject.Parse(value.ToString())
                rel = token.SelectToken("rel")
                href = token.SelectToken("href")
    
                Console.WriteLine("{0} {1}", rel, href)
            Next value
    

    如果此代码存在

    ' Create a request for the URL. 
            Dim request As WebRequest = WebRequest.Create("http://")
    
            ' If required by the server, set the credentials.
            request.Credentials = CredentialCache.DefaultCredentials
            ' Get the response.
            Dim response As WebResponse = request.GetResponse()
            ' Display the status.
            Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
            ' Get the stream containing content returned by the server.
            Dim dataStream As Stream = response.GetResponseStream()
            ' Open the stream using a StreamReader for easy access.
            Dim reader As New StreamReader(dataStream)
            ' Read the content.
            Dim responseFromServer As String = reader.ReadToEnd()
            'Dim responseFromServer As String = reader.ReadToEnd()
            Console.WriteLine(responseFromServer)
            Dim result = JsonConvert.DeserializeObject(Of ArrayList)(responseFromServer)
    

    这个代码在底部

            Console.ReadKey()
            ' Clean up the streams and the response.
            reader.Close()
            response.Close()
    

    进口...

            Imports System
            Imports System.IO
            Imports System.Net
            Imports System.Text
            Imports Newtonsoft.Json
            Imports Newtonsoft.Json.Linq
    

    发现它herethis 是我发现的c# 形式的代码...仅供参考。

    【讨论】: