Получение ответа JSON от REST API с VBA - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь получить данные как JSON с помощью следующего кода, но я просто получаю ответ XML:

Public Sub vbajson()
    Dim http As Object
    Dim sht As Worksheet
    Dim authKey As String
    Dim accNr As String

    Set sht = Worksheets("Account")
    authKey = "abc"
    accNr = "123"

    Set http = CreateObject("MSXML2.XMLHTTP")
    With http
        .Open "GET", "https://api.tradier.com/v1/accounts/" & accNr & "/balances", False
        .setRequestHeader "Content-type", "application/json"
        .setRequestHeader "Accept", "application/json"
        .setRequestHeader "Authorization", "Bearer " & authKey
        .Send
    End With

    MsgBox http.responsetext
End Sub

вывод msgbox:

msgbox data structure output tradier

вместо использования

.Open "GET", "https://api.tradier.com/v1/accounts/" & accNr & "/balances", False

Я протестировал следующую ссылку, оставив остальную часть кода VBA без изменений:

.Open "GET", "http://jsonplaceholder.typicode.com/users", False`

и получил следующий результат, который является данными структура, которую я хочу:

msgbox data structure output jsonplaceholder

Я также получаю данные в структуре JSON, используя следующий код Python (код заимствован отсюда: https://documentation.tradier.com/brokerage-api/accounts/get-account-balance )

import requests

response = requests.get('https://api.tradier.com/v1/accounts/123/positions',
    params={},
    headers={'Authorization': 'Bearer abc', 'Accept': 'application/json'}
)
json_response = response.json()
print(response.status_code)
print(json_response)

Есть идеи, как мне обновить код VBA, чтобы получить данные в структуре JSON? В чем проблема? Я хочу получить JSON, так как xml больше не будет поддерживаться после обновления API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...