取得しているからの JSON(Object) 応答を適切にループする方法がわかりませんWinHttp.WinHttpRequest
。
以下は、使用されている参考文献です。そのまま保管して使用することを好みます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
しかし、最初の値だけでなくすべての値を取得するには、それをループできる必要があります
length()
JSON を配列またはsize()
関数を使用して配列に変換する方法が見つからないようです。検索して見つけましたがUBound()
、LBound()
オブジェクトではなく配列でのみ使用できると思います。
助けていただければ幸いです。私はほとんどの場合Javaを使用していますが、VBAでは少し異なります。
ありがとうございました。