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

如何将JSON文件中的多维数组转换为Visual Basic可直接使用的数组?

实现步骤

1. 先修正JSON格式问题

你提供的JSON文件中AsVal键缺失双引号,首先要调整为标准JSON格式,避免解析失败:

[{"Name":"Diluc",
  "BaseATK":335,
  "BaseDef":784,
  "BaseHP":12981,
  "AsStat":"cd",
  "AsVal": 24.2 }, 
 {"Name":"Amber",
  "BaseATK":223,
  "BaseDef":601,
  "BaseHP":9461,
  "AsStat":"atk%",
  "AsVal": 24 },
 {"Name":"Barbara",
  "BaseATK":159,
  "BaseDef":669,
  "BaseHP":9787,
  "AsStat":"hp%",
  "AsVal": 24 },
 {"Name":"Beidou",
  "BaseATK":225,
  "BaseDef":648,
  "BaseHP":13050,
  "AsStat":"electro%",
  "AsVal": 24 }]

2. 安装Newtonsoft.Json

在你的VB项目中打开NuGet包管理器,搜索Newtonsoft.Json安装即可,这是目前.NET生态最通用的JSON处理库。

3. 定义匹配的实体类

新建一个类和JSON结构一一对应:

Public Class Character
    Public Property Name As String
    Public Property BaseATK As Integer
    Public Property BaseDef As Integer
    Public Property BaseHP As Integer
    Public Property AsStat As String
    Public Property AsVal As Double
End Class

4. 读取JSON并反序列化为数组/列表

使用如下代码完成解析:

Imports System.IO
Imports Newtonsoft.Json

' 读取JSON文件内容
Dim jsonContent As String = File.ReadAllText("charactervalues.json")
' 反序列化为Character类型的列表
Dim characterList As List(Of Character) = JsonConvert.DeserializeObject(Of List(Of Character))(jsonContent)
' 可以按需转为数组
Dim characterArray As Character() = characterList.ToArray()

' 示例:遍历访问属性
For Each c In characterArray
    Console.WriteLine($"角色名:{c.Name},基础攻击力:{c.BaseATK}")
Next

无需定义类的轻量方案

如果你不想额外定义实体类,也可以直接反序列化为JArray动态访问属性:

Imports Newtonsoft.Json.Linq

Dim jsonContent As String = File.ReadAllText("charactervalues.json")
Dim jArray As JArray = JArray.Parse(jsonContent)

' 访问第一个角色的属性
Dim dilucName As String = jArray(0)("Name").ToString()
Dim dilucBaseATK As Integer = CInt(jArray(0)("BaseATK"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:36:07