我试图从JSON API获取一些信息,但一切都很顺利。因此,当我尝试解析JSON“根”中的值时,我开始遇到不匹配错误。
我使用的代码如下:
Public Sub Times()
Dim http As Object, JSON As Object, i As Integer
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", "https://api.cartolafc.globo.com/time/id/1084847/7", False
http.Send
Set JSON = ParseJson(http.responseText)
i = 2
Application.ScreenUpdating = False
Sheets("Youtube").Select
For Each Item In JSON
Sheets("Mais Escalados").Cells(i, 2).value = Item("pontos")
i = i + 1
Next
Application.ScreenUpdating = True
MsgBox ("Atualização Completa")
End Sub
我可以解析atletas
子项或任何其他头部中的数据,更改代码如下:
Sheets("Mais Escalados").Cells(i, 2).value = Item("atletas")("nome")
但是,当我试图解析根目录上的pontos
之类的信息时,我得到了不匹配错误。
发布于 2018-06-05 04:21:46
这将为您提供键“pontos”的根值:
JSON("pontos")
您不能像在发布的代码中那样循环遍历根键:在尝试将每个键值写入工作表之前,您需要检查每个键值的类型:
Public Sub Times()
Dim http As Object, JSON As Object, i As Integer, k
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", "https://api.cartolafc.globo.com/time/id/1084847/7", False
http.Send
Set JSON = ParseJson(http.responseText)
For Each k In JSON
Debug.Print k, TypeName(JSON(k))
Next
End Sub
输出:
atletas Collection clubes Dictionary posicoes status Dictionary capitao_id Double time字典patrimonio esquema_id Double valor_time Double rodada_atual Double
https://stackoverflow.com/questions/50688057
复制相似问题