0

取得しているからの 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では少し異なります。

ありがとうございました。

4

1 に答える 1