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

VB.NET中如何解析JSON对象数组并访问各对象属性

解决VB.NET中JSON数组的反序列化问题

嗨,我懂你的问题了——现在接口返回的是JSON数组(包裹在[]里的多个交易对象),但你之前的代码是按照单个Transaction对象来反序列化的,所以才没法通过transactionResponse.amount访问属性,毕竟现在的返回结果是一个集合而不是单个对象。咱们调整一下代码就能解决:

修改步骤

  1. 把反序列化的目标类型从单个Transaction改成交易对象的集合(比如List(Of Transaction)或者Transaction()数组都可以)
  2. 遍历这个集合,就能逐个访问每个交易的amount、status等属性了

修改后的完整代码

Try
    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
    Dim Request As WebRequest = WebRequest.Create(url)
    Request.Credentials = CredentialCache.DefaultCredentials
    Using responseStream = Request.GetResponse().GetResponseStream()
        Using reader As New StreamReader(responseStream)
            Dim objResponse As String = reader.ReadToEnd()
            ' 反序列化为交易对象列表,也可以用Transaction()数组替代List(Of Transaction)
            Dim transactionList = JsonConvert.DeserializeObject(Of List(Of Transaction))(objResponse)
            
            ' 遍历每个交易,访问属性
            For Each transaction In transactionList
                ' 示例:输出每个交易的状态和金额
                Console.WriteLine($"交易状态:{transaction.status},金额:{transaction.amount}")
                ' 这里可以根据业务需求处理单个transaction的amount等属性
            Next
        End Using
    End Using
Catch ex As WebException
    ' 建议添加异常处理逻辑,比如打印错误信息
    Console.WriteLine($"请求异常:{ex.Message}")
End Try

Private Class Transaction
    ' object是VB.NET关键字,加方括号转义避免语法警告,也可以重命名为ObjectType等
    Public Property [object] As String
    Public Property status As String
    Public Property amount As Integer
End Class

关键说明

  • 反序列化类型调整:原来的JsonConvert.DeserializeObject(Of Transaction)只能解析单个对象的JSON,改成List(Of Transaction)后就能适配数组格式的返回结果了
  • 关键字转义:object是VB.NET的保留关键字,直接作为属性名会有语法警告,用[object]转义或者重命名属性都能解决
  • 集合遍历:通过For Each循环遍历transactionList,就能逐个操作每个交易对象的属性啦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:02:41