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

VB6中如何解析JSON字符串并提取所有节点值?

VB6中提取JSON所有节点值的方法

VB6没有原生JSON解析能力,最便捷的方式是借助Microsoft Script Control组件解析JSON字符串,以下是适配你需求的完整实现:

完整示例代码

Private Sub RestExample()

    Dim APICall As String
    Dim STRINGA As String
    Dim sc As Object
    Dim jsonObj As Object
    Dim dataObj As Object
    Dim apiKey As Variant
    Dim apiDetails As Object

    ' 原有API请求逻辑
    APICall = "https://oauth.openapi.it/counters/total"
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", APICall, False
        .setRequestHeader "Authorization", "Basic " & PASSWORD
        .send
        STRINGA = .responseText
    End With

    ' 初始化脚本控件用于JSON解析
    Set sc = CreateObject("ScriptControl")
    sc.Language = "JScript"
    
    ' 将JSON字符串转为可操作的对象
    Set jsonObj = sc.Eval("(" & STRINGA & ")")
    
    ' 遍历data节点下的所有API统计数据
    Set dataObj = jsonObj.data
    For Each apiKey In dataObj
        Set apiDetails = dataObj(apiKey)
        ' 输出各项值(也可存入变量供后续使用)
        Debug.Print "API路径: " & apiKey
        Debug.Print "counter: " & apiDetails.counter
        Debug.Print "paid: " & apiDetails.paid
        Debug.Print "limit: " & apiDetails.limit
        Debug.Print "-------------------------"
    Next
    
    ' 提取顶层节点的值
    Debug.Print "success状态: " & jsonObj.success
    Debug.Print "返回消息: " & jsonObj.message
    Debug.Print "错误信息: " & jsonObj.error
    
    ' 释放对象资源
    Set apiDetails = Nothing
    Set dataObj = Nothing
    Set jsonObj = Nothing
    Set sc = Nothing

End Sub

关键说明

  1. 组件依赖:ScriptControl是Windows系统自带组件,若运行提示找不到,可通过命令行注册:

    regsvr32 C:\Windows\SysWOW64\msscript.ocx
    

    (32位系统路径为C:\Windows\System32\msscript.ocx)

  2. JSON解析逻辑:用(" & STRINGA & ")包裹JSON字符串是JScript语法要求,确保能正确解析对象字面量。

  3. 遍历方式:通过For Each循环遍历data节点下的所有API键名,再逐个访问对应的子属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:05:23