我无法弄清楚如何正确循环通过WinHttp.WinHttpRequest
我得到的 JSON(Object) 响应。
以下是正在使用的参考资料。我更喜欢保持原样并使用WinHttpRequest
Dim response As Object ' global
Function sendRequest(requestURL As String) ' send the http REST request url of API transaction
Dim request As New WinHttp.WinHttpRequest
request.Open "GET", requestURL, True
request.setRequestHeader "Authorization", "Bearer " + tokenResp
request.setRequestHeader "Accept", "application/json"
request.send
request.waitForResponse
Set response = ParseJson(request.ResponseText)
' Debug.Print vbNewLine & "Response : " & vbNewLine
' Debug.Print "Request ResponseText : " & request.ResponseText
End Function
下面是我得到的 JSON 响应的样子。还有更多记录。
{
"Record":[
{
"NameValue":[
{
"Name":"name1",
"Value":"value1"
},
{
"Name":"name2",
"Value":"value2"
}
]
},
{
"NameValue":[
{
"Name":"name1",
"Value":"value1"
},
{
"Name":"name2",
"Value":"value2"
}
]
}
]
}
是response
一个对象。我可以做得到Debug.Print response("Record")(1)("NameValue")(1)("Value")
第一个记录
Debug.Print response("Record")(1)("NameValue")(1)("Value")
'值1
但我需要能够遍历它以获取所有值,而不仅仅是第一个值
我似乎找不到将 JSON 转换为带有数组length()
或size()
函数的数组的方法。我搜索并找到了UBound()
,LBound()
但我认为它只能用于数组而不是对象。
我会很感激任何帮助。我大部分时间都在使用 Java,而 VBA 中的情况有些不同。
谢谢你。