您好,碰巧我正在使用一个 API,他们从中给了我一个 URL,我必须向其中添加一些参数,以便它返回结果。
此 API 返回一个 JSON,我必须将其加载到 Excel 中的表中
我基于这个页面
这是我的代码终于可以工作了,但奇怪的是它没有给我带来位置和方向数据
Option Explicit
Sub TestTablas()
Dim Tablas As QueryTable
Dim url As String
Dim id As Integer
Dim startDate As String
Dim endDate As String
Dim req As Object
Dim strjson As String
Dim jp As Object
Dim dict
Dim subdict
Dim subsubdict
Dim i As Integer
Dim roleJson As String
Dim jpRoles As Object
Dim items
Dim itemsId
Dim attr
Dim itemattr
id = Hoja10.Range("C2")
startDate = Format(Hoja10.Range("C3"), "yyyy-mm-dd hh:mm:ss")
endDate = Format(Hoja10.Range("C4"), "yyyy-mm-dd hh:mm:ss")
url = "https://xxx.yyy.com/api/zzz?id=" & id& "&startDate=" & startDate & "&endDate=" & endDate & "&timezone=-6"
Set req = CreateObject("MSXML2.XMLHTTP")
req.Open "GET", url, False
req.Send
Set jp = JsonConverter.ParseJson(req.ResponseText)
Set items = jp("items")
roleJson = req.ResponseText
Set jpRoles = JsonConverter.ParseJson(roleJson)
Set items = jpRoles("items")
i = 7
For Each itemsId In items
For Each attr In itemsId
' Debug.Print attr
'Debug.Print itemsId(attr)
Sheets("Informacion").Cells(i, 1).Value = itemsId("name")
Sheets("Informacion").Cells(i, 2).Value = itemsId("Position")
Sheets("Informacion").Cells(i, 3).Value = itemsId("positionDate")
Sheets("Informacion").Cells(i, 4).Value = itemsId("latitude")
Sheets("Informacion").Cells(i, 5).Value = itemsId("longitude")
Sheets("Informacion").Cells(i, 6).Value = itemsId("Orientation")
Sheets("Informacion").Cells(i, 7).Value = itemsId("speed")
Sheets("Informacion").Cells(i, 8).Value = itemsId("receiptDate")
Sheets("Informacion").Cells(i, 9).Value = itemsId("notification")
Sheets("Informacion").Cells(i, 10).Value = itemsId("kilometers")
Sheets("Informacion").Cells(i, 11).Value = itemsId("unitVoltage")
Sheets("Informacion").Cells(i, 12).Value = itemsId("gpsVoltage")
Sheets("Informacion").Cells(i, 13).Value = itemsId("satellites")
Next attr
i = i + 1
Next itemsId
End Sub
JSON 示例
JSON 对象的属性通常区分大小写,这意味着
Position
andposition
或Orientation
andorientation
不是一回事。在图像中,很明显 JSON 中的这些属性是小写的,但您正在寻找它们作为大写属性。
如果你这样说,它应该可以工作: