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

VB.NET新手求助:如何从API提取数据填充至ListView列

VB.NET解析Trackmania API数据并填充ListView的解决方案

为什么别用正则?

API返回的是标准JSON格式,正则匹配结构化数据容易因为格式细节(如空格、键值对顺序变化)失效,且代码可读性差,用专门的JSON解析库才是可靠方案。

步骤1:定义对应JSON结构的类

创建一个和API返回数据字段匹配的类,让解析库能自动映射数据:

Public Class TrackData
    Public Property TrackId As Integer
    Public Property TrackName As String
End Class

步骤2:发送HTTP请求并解析JSON

使用.NET内置的HttpClient发送请求,结合System.Text.Json(无需额外安装)解析数据,再填充到ListView:

Imports System.Net.Http
Imports System.Text.Json
Imports System.Windows.Forms

Private Async Sub btnLoadTracks_Click(sender As Object, e As EventArgs) Handles btnLoadTracks.Click
    ' 初始化ListView的显示模式和列
    ListView1.View = View.Details
    If ListView1.Columns.Count = 0 Then
        ListView1.Columns.Add("TrackId", 100)
        ListView1.Columns.Add("TrackName", 300)
    End If
    ListView1.Items.Clear()

    Dim apiUrl As String = "https://tmnf.exchange/api/tracks?author=lolsport&count=40&fields=TrackId%2CTrackName"

    Using httpClient As New HttpClient()
        Try
            ' 异步获取API返回的JSON字符串
            Dim jsonResponse As String = Await httpClient.GetStringAsync(apiUrl)
            ' 将JSON反序列化为TrackData对象列表
            Dim tracks As List(Of TrackData) = JsonSerializer.Deserialize(Of List(Of TrackData))(jsonResponse)

            ' 遍历数据填充ListView
            For Each track In tracks
                Dim listItem As New ListViewItem(track.TrackId.ToString())
                listItem.SubItems.Add(track.TrackName)
                ListView1.Items.Add(listItem)
            Next
        Catch ex As Exception
            MessageBox.Show($"加载失败: {ex.Message}")
        End Try
    End Using
End Sub

兼容旧.NET版本的方案(使用Json.NET)

如果你的项目基于.NET Framework且无法使用System.Text.Json,可以通过NuGet安装Newtonsoft.Json包,然后修改解析部分:

Imports Newtonsoft.Json

' 替换原解析代码为:
Dim tracks As List(Of TrackData) = JsonConvert.DeserializeObject(Of List(Of TrackData))(jsonResponse)

注意事项

  • 确保在UI线程中更新ListView(上述代码在按钮点击事件中执行,默认是UI线程,无需额外处理)
  • 异步请求避免阻塞UI界面,提升用户体验
  • 异常处理能捕获网络错误、JSON解析错误等问题,方便排查

内容的提问来源于stack exchange,提问作者Robi SE.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:36:59