Мне не понятно, что вы имеете в виду.Весь ответ может идти в ячейке следующим образом.JSON - это объект, поэтому вам нужно ключевое слово Set
, но вы не можете установить диапазон ячеек для объекта словаря - источника вашей ошибки.
Option Explicit
Public Sub GetInfo()
Dim URL As String, json As Object
URL = "https://earthquake.usgs.gov/ws/designmaps/asce7-10.json?latitude=36.497452&longitude=-86.949479&riskCategory=III&siteClass=C&title=Seismic"
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", URL, False
.send
Set json = JsonConverter.ParseJson(.responseText) '<== dictionary
ThisWorkbook.Worksheets("Sheet1").Cells(1, 1) = .responseText
End With
End Sub
Когда вы используете parsejson, вы конвертируете вобъект словаря, с которым вам нужно что-то делать.Внутри просто слишком много данных, чтобы что-то записать (если предел не превышен) в одну ячейку.
Внутренний словарь data
быстро опускается во вложенные коллекции.Количество вложенных коллекций исходит из
Dim dict As Object
Set dict = json("response")("data")
Debug.Print "nested collection count = " & dict("sdSpectrum").Count + dict("smSpectrum").Count
Чтобы получить только значения s1 и ss, проанализируйте их:
Dim dict As Object
Set dict = json("response")("data")
ws.Cells(1, 2) = "ss: " & dict("ss") & Chr$(10) & "s1: " & dict("s1")
