无法从网页获取json格式的数据

时间:2017-04-28 13:57:46

标签: json vba web-scraping

运行我的vba脚本以便从网页中解析数据后,我可以看到它显示了"对象需要"错误。我可以在错误导致行之前设置的msgbox中看到所需的数据。由于我还没有使用json格式,我无法使执行成功。任何帮助,将不胜感激。以下是我要做的事情:

Sub JsonData()
Dim http As New MSXML2.XMLHTTP60
Dim PostData As String, JSONa As Object, ele As Object

PostData = "region=US&latitude=61.7958256&longitude=-148.8045856&location=Sutton-Alpine%2C%20AK&source=US-STANDALONE&radius=25&pageNumber=1&pageSize=10&sortBy=&industryFilter=340&serviceFilter=550,90"

With http
    .Open "GET", "https://proadvisorservice.intuit.com/v1/search?" & PostData, False
    .setRequestHeader "Content-Type", "application/json; charset=utf-8"
    .setRequestHeader "Accept", "application/json;version=1.1.0"
    .send
    Set JSONa = JsonConverter.ParseJson(.responseText)
End With
MsgBox http.responseText
    For Each ele In JSONa
        i = i + 1
        Cells(i, 1).Value = ele("firstName")
        Cells(i, 2).Value = ele("lastName")
        Cells(i, 3).Value = ele("city")
    Next ele
End Sub

1 个答案:

答案 0 :(得分:1)

搜索结果为VBA.Collection,其中此集合的每个项目包含另一个Scripting.Dictionary。希望您要求的是以下内容。 HTH

Dim results As VBA.Collection
Set results = JSONa("searchResults")

Dim result As Scripting.Dictionary
For Each result In results
    i = i + 1
    Cells(i, 1).Value = result("firstName")
    Cells(i, 2).Value = result("lastName")
    Cells(i, 3).Value = result("city")
Next result