2013-10-07 79 views
0

我試圖將一個foursquare API場地搜索的結果作爲一個簡單的表格獲取到excel中。我使用此請求here並將結果保存到以.json結尾的文件中。然後,我嘗試使用幾個在線轉換器將其更改爲CSV/XML以供Excel讀取。但是,我只設法讓一個網站實際產生結果,不幸的是他們收費。有沒有辦法讓這個查詢的結果更容易地進入Excel表格?將Foursquare數據導入到Excel中

+0

結果是什麼樣的? json響應有多複雜?也許嘗試Codo的答案在這裏:http://stackoverflow.com/questions/5773683/excel-vba-parsed-json-object-loop –

+0

如果我從上面粘貼json結果到[this](http://www.utilities -online.info/xmltojson/#.UlPFRVBJPV4)網站,然後保存生成的XML,然後將其加載到Chrome中。第5行第1列出現以下錯誤_error:文檔末尾的額外內容_ – dojogeorge

+0

您的API鏈接點到登錄頁面,所以沒有什麼可以看到的。到目前爲止,您的問題太含糊,無法提供任何建議。你應該在你的問題中包含json結果(或者如果它太大,那麼代表它的一部分) –

回答

0

以下是您可以從響應中提取單個元素的方法。這意味着你需要在每個屬性的腳本控件中創建「訪問器」函數。

Sub TestIt() 

    Dim json As String, x As Long, num As Long 

    json = CreateObject("scripting.filesystemobject"). _ 
      opentextfile("C:\_Stuff\test\json.txt").readall() 

    'Debug.Print json 

    Dim s As Object, jsObj As Object 
    Set s = CreateObject("ScriptControl") 
    s.Language = "JScript" 

    s.ExecuteStatement "var obj = null;" & vbCrLf & _ 
     "function JSON(s){obj=eval('('+s+')');}" & vbCrLf & _ 
     "function numVenues(){return obj.response.venues.length;}" & vbCrLf & _ 
     "function venueId(i){return obj.response.venues[i].id;}" 

    s.Run "JSON", json 

    num = s.Run("numVenues") 'how many venues 
    Debug.Print num 
    For x = 0 To num - 1 
     Debug.Print s.Run("venueId", x) 
    Next x 


End Sub 
+0

更多的OO方法。只要去array.item(0)看到這個鏈接(http://stackoverflow.com/questions/5773683/excel-vba-parsed-json-object-loop/19359035#19359035) – ozmike