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

QTP/UFT自动化中如何用VBScript解析REST API的JSON响应?

解析REST API响应:JSON vs XML 在VBScript中的实现方案

嘿,作为VBScript新手碰到JSON解析的问题太正常了——毕竟VBScript本身没有原生的JSON处理能力,不过别担心,咱们有两种靠谱的方案可以选,我给你一步步讲清楚:

方案一:解析JSON响应

因为VBScript没有内置JSON解析器,咱们可以借助ScriptControl对象调用JScript的JSON.parse方法来处理,这是最常用的变通方案。

具体代码实现

在你已有的代码基础上,添加这段解析逻辑:

' 拿到JSON响应后,开始解析
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"

' 用JScript的JSON.parse把字符串转成可访问的对象
' 转义单引号避免解析出错
Set jsonObj = sc.Eval("JSON.parse('" & Replace(restjsonresp, "'", "\'") & "')")

' 现在可以像访问对象属性一样获取值
' 示例:取第一个element里的账号和账号类型
accountNumFromAPI = jsonObj.searchResponse.element(0).accountNumber
accTypeFromAPI = jsonObj.searchResponse.element(0).accType

' 测试输出
MsgBox "API返回的账号:" & accountNumFromAPI
MsgBox "账号类型:" & accTypeFromAPI

方案二:切换到XML响应(更简便的选择)

如果你觉得JSON解析的步骤有点绕,切换到XML响应确实会更省心——VBScript对XML的支持是原生的,用Msxml2.DOMDocument就能轻松处理,不需要额外依赖,尤其适合新手。

具体代码实现

  1. 首先修改请求头,把Accept改成application/xml:
' 替换原有的Accept请求头
objXmlHttpMain.setRequestHeader "Accept", "application/xml"
  1. 发送请求后,用DOMDocument解析XML响应:
' 加载XML响应
Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")
xmlDoc.async = False
xmlDoc.loadXML(objXmlHttpMain.responseText)

' 用XPath获取对应节点的值(XML结构和JSON对应)
accountNumFromAPI = xmlDoc.SelectSingleNode("//searchResponse/element/accountNumber").Text
accTypeFromAPI = xmlDoc.SelectSingleNode("//searchResponse/element/accType").Text

' 测试输出
MsgBox "API返回的账号:" & accountNumFromAPI
MsgBox "账号类型:" & accTypeFromAPI

两种方案的对比

  • JSON方案:响应格式更简洁,但需要依赖ScriptControl,部分受严格安全限制的环境可能禁用这个对象;
  • XML方案:VBScript原生支持,稳定性更高,代码更直观,适合你这种VBScript新手,尤其在QTP/UFT的环境里,XML处理也是常用技能。

结合你的情况,我更推荐用XML方案,上手更快,踩坑更少~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:14:04