Я пытаюсь получить данные как 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:

вместо использования
.Open "GET", "https://api.tradier.com/v1/accounts/" & accNr & "/balances", False
Я протестировал следующую ссылку, оставив остальную часть кода VBA без изменений:
.Open "GET", "http://jsonplaceholder.typicode.com/users", False`
и получил следующий результат, который является данными структура, которую я хочу:

Я также получаю данные в структуре 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.