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

如何在VB.NET中解析jQuery DataTable返回的JSON结果?

VB.NET 反序列化 jQuery DataTable 格式 JSON 为对象集合

针对你获取的jQuery DataTable格式JSON,以下几种方法可以实现反序列化并转换为集合/对象列表:

方法1:定义匹配的类模型(推荐)

通过定义与JSON结构对应的类,使用Json.NET(Newtonsoft.Json)库完成强类型反序列化,这是最稳定的方式。

步骤1:定义响应类

Public Class DataTableResponse
    Public Property draw As Integer
    Public Property recordsTotal As Integer
    Public Property recordsFiltered As Integer
    Public Property data As List(Of String()) ' 用String()数组对应每条无键名的记录
End Class

步骤2:反序列化并处理数据

Imports Newtonsoft.Json

' 假设jsonString是你从HttpClient获取的JSON字符串
Dim tableResponse = JsonConvert.DeserializeObject(Of DataTableResponse)(jsonString)

' 遍历每条记录
For Each recordArray In tableResponse.data
    ' 通过索引访问每个字段值,例如recordArray(0)对应第一条数据的第一个值
    Dim firstField = recordArray(0)
    Dim secondField = recordArray(1)
    ' ...根据业务需求处理字段
Next

方法2:使用动态类型快速处理

如果不想提前定义类,可以用动态类型直接解析JSON:

Imports Newtonsoft.Json

Dim dynamicResult = JsonConvert.DeserializeObject(Of Object)(jsonString)
Dim dataRecords = dynamicResult.data

For Each record In dataRecords
    ' 直接通过索引获取字段值
    Dim fieldValue = record(3) ' 示例:获取第四个字段
    ' ...处理逻辑
Next

方法3:映射为自定义实体类

如果需要将无键名的数组转换为带属性名的实体对象,可以在反序列化后手动映射:

步骤1:定义自定义实体类

Public Class BusinessRecord
    Public Property ID As String
    Public Property Name As String
    Public Property Category As String
    ' ...根据实际业务定义对应属性(共8个)
End Class

步骤2:完成映射

Imports Newtonsoft.Json
Imports System.Linq

Dim tableResponse = JsonConvert.DeserializeObject(Of DataTableResponse)(jsonString)
Dim businessRecords = tableResponse.data.Select(Function(arr) New BusinessRecord() With {
    .ID = arr(0),
    .Name = arr(1),
    .Category = arr(2),
    ' ...依次为每个属性赋值对应索引的数组元素
}).ToList()

异常处理提示

如果反序列化时出现异常,可以通过配置序列化选项忽略非关键错误:

Dim serializerSettings = New JsonSerializerSettings() With {
    .MissingMemberHandling = MissingMemberHandling.Ignore, ' 忽略JSON中不存在的类属性
    .Error = Sub(sender, args) args.ErrorContext.Handled = True ' 捕获并处理序列化错误
}

Dim tableResponse = JsonConvert.DeserializeObject(Of DataTableResponse)(jsonString, serializerSettings)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:27:26