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
关键说明
组件依赖:
ScriptControl是Windows系统自带组件,若运行提示找不到,可通过命令行注册:regsvr32 C:\Windows\SysWOW64\msscript.ocx(32位系统路径为
C:\Windows\System32\msscript.ocx)JSON解析逻辑:用
(" & STRINGA & ")包裹JSON字符串是JScript语法要求,确保能正确解析对象字面量。遍历方式:通过
For Each循环遍历data节点下的所有API键名,再逐个访问对应的子属性。
内容的提问来源于stack exchange,提问作者user1579247
相关产品推荐
相关产品推荐

