Я пытаюсь сделать лист Excel, чтобы узнать текущую температуру в разных городах. Я совершенно новичок в этом API. Мне удалось отправить запрос и получить информацию обратно. Но когда я пытаюсь поместить результат в лист, я не так успешен. Это код:
Sub VBAJson()
Dim xml_obj As MSXML2.XMLHTTP60
Set xml_obj = New MSXML2.XMLHTTP60
xml_obj.Open "GET", "the UrltoWeatherAPI", False
xml_obj.send
Dim weather As Object
Set weather = JsonConverter.ParseJson(xml_obj.responseText)
Dim Visa As Worksheet
Set Visa = Worksheets("Visa")
Visa.Range("B2") = weather("city")("name") 'this line works
Visa.Range("B3") = weather("list")("0")("main")("temp") 'this gives me the error
' ^ ^ ^
' variant/ variant/ variant/
' string object/ string
' dictionary
End Sub
Первая строка работает и помещает название города в ячейку B2, вторая строка выдает ошибку. «Недопустимый вызов процедуры или аргумент (ошибка 5)» Кто-нибудь знает, в чем может быть проблема?
Так выглядят первые несколько строк ответа в браузере. Это те, которые я использую в строке, которая завершается неудачей.
cod: "200"
message: 0
cnt: 40,
list:
0:
dt: 1583442000,
main:
temp: 274.27
В конце это выглядит так:
city:
id: 2697703
name: "Landvetter"
edit Я проверил содержимое weather
и содержит пять элементов, один со значением "list"
. Когда я проверял этот элемент, он содержал 40 элементов типа «Вариант / Объект / Словарь». Ни один из них не имел значения.
Каждый из 40 предметов содержал 7 предметов, один из которых был "main"
, который я пытаюсь использовать.
Кажется, что 40 предметов вызывают проблему. В ответе JSON они просто выглядят как «0», «1», «2» и т. Д.