You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JSON.Net将JSON对象数组解析为VB.NET对象列表?

解决VB.NET中用JSON.Net解析JSON数组到对象列表的问题

嘿,我来帮你搞定这个JSON解析的问题!你已经装了JSON.Net(Newtonsoft.Json),那剩下的步骤其实很简单,咱们一步步来:


第一步:补全你的ServerLocation类

首先要确保你的ServerLocation类的属性和JSON里的字段对应上,这样JSON.Net才能正确映射。你可以直接用和JSON键同名的属性,也可以用JsonProperty特性给属性起更规范的VB命名:

Imports Newtonsoft.Json

Public Class ServerLocation
    ' 方式1:属性名和JSON键完全一致,无需额外配置
    Public Property servername As String
    Public Property ovpnlocation As String

    ' 方式2:用更符合VB命名规范的属性名,通过JsonProperty映射到JSON键
    ' <JsonProperty("servername")>
    ' Public Property ServerName As String
    ' <JsonProperty("ovpnlocation")>
    ' Public Property OVPNLocation As String
End Class

第二步:解析JSON数组到List(Of ServerLocation)

假设你已经有了JSON字符串(不管是直接定义的,还是从文件/网络获取的),直接用JsonConvert.DeserializeObject方法就能完成解析:

示例1:解析直接定义的JSON字符串

' 你的JSON数组字符串(注意VB里双引号要转义成两个双引号)
Dim jsonString As String = "[ { ""servername"": ""US - New Jersey"", ""ovpnlocation"": ""servers/newjersey.ovpn"" }, { ""servername"": ""The Netherlands"", ""ovpnlocation"": ""servers/nl.ovpn"" }, { ""servername"": ""Belgium"", ""ovpnlocation"": ""servers/belgium.ovpn"" } ]"

' 解析成目标列表
Dim ServerList As New List(Of ServerLocation)
ServerList = JsonConvert.DeserializeObject(Of List(Of ServerLocation))(jsonString)

示例2:解析从文件读取的JSON

如果你的JSON存在本地文件里,可以先读取文件内容再解析:

' 读取文件中的JSON内容
Dim jsonFilePath As String = "C:\your\file\path\servers.json"
Dim jsonContent As String = System.IO.File.ReadAllText(jsonFilePath)

' 解析成列表
Dim ServerList As List(Of ServerLocation) = JsonConvert.DeserializeObject(Of List(Of ServerLocation))(jsonContent)

注意事项

  • 一定要在代码顶部添加Imports Newtonsoft.Json,否则会找不到JsonConvert和JsonProperty这些对象/特性。
  • 如果JSON格式有问题(比如语法错误),解析时会抛出异常,建议可以用Try-Catch块来处理可能的错误:
Try
    ServerList = JsonConvert.DeserializeObject(Of List(Of ServerLocation))(jsonString)
Catch ex As Exception
    ' 处理解析错误,比如输出错误信息
    Console.WriteLine($"解析失败:{ex.Message}")
End Try

内容的提问来源于stack exchange,提问作者Niel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:53:51