2013-10-15 53 views
0

我試圖解析從谷歌地圖地理位置API的JSON響應。我得到這個代碼的JSON響應:地理位置經典asp json響應

 set xmlHTTP = server.createobject("MSXML2.ServerXMLHTTP.6.0") 
    xmlHTTP.open "GET", "https://maps.googleapis.com/maps/api/distancematrix/json?origins=50.9255685,29.2703104&destinations=46.446251,28.570993&mode=driving&language=sv-SE&sensor=false", false 
    xmlHTTP.send() 
    LatLongFeed = xmlHTTP.ResponseText 

我試圖讓街道ADRESS(始發地和目的地的價值觀和我試圖讓距離,但我不能讓它的工作

我要如何在響應中的值,所以我可以在我的經典ASP代碼使用它?

+0

這將幫助,如果你會告訴我們你已經嘗試什麼,在哪裏/它是如何失敗的。 – AnonJr

+0

我嘗試了googleapis網址和一些使用西里爾(即俄羅斯)字母的json響應。你的asp頁面是否可以應付這個問題? – John

回答

0

我已經嘗試不同的解決方案,這是基於JSON類(http://www.aspjson.com/

Set oJSON = New aspJSON 

'Load JSON string 
oJSON.loadJSON("https://maps.googleapis.com/maps/api/distancematrix/json?origins=" & rs("LatiStart")& "," & rs("LongStart")& "&destinations=" & rs("LatiStop")& "," & rs("LongStop")& "&mode=driving&language=sv-SE&sensor=false") 

'Get single value 
Response.Write oJSON.data("distance") & "<br>" 

'Loop through collection 
For Each subItem In oJSON.data("distance") 
    Response.Write subItem & ": " & _ 
    oJSON.data("distance").item(subItem) & "<br>" 
Next 

'Return the object 
Response.Write oJSON.JSONoutput() 

運行此我得到 LineNumber上55 錯誤代碼800a01c3 描述對象不是一個集合55

線是(每個子項在oJSON.data(「距離」))在我的例子

JSON響應基於示例座標並且不是實際位置。地址只包含標準的a-z。

+0

這應該是對問題的編輯,因爲它不是答案。附: \t 從2013年12月發佈的ASPJSON版本1.13開始,實際上可以像試圖那樣直接使用URL加載JSON。 – Dijkgraaf

0

加載JSON不能這樣工作。您應該將呼叫的響應加載到那裏,而不是請求URL。 因此,像這樣:

URL = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" & rs("LatiStart")& "," & rs("LongStart")& "&destinations=" & rs("LatiStop")& "," & rs("LongStop")& "&mode=driving&language=sv-SE&sensor=false" 
Set objXmlHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0") 
objXmlHTTP.Open "POST", URL, False 
objXmlHTTP.setRequestHeader "Content-Type", "application/json" 

objXmlHttp.Send 
Set oJSON = New aspJSON 
oJSON.loadJSON(objXmlHTTP.ResponseText) 
+0

從2013年12月發佈的ASPJSON版本1.13開始,您可以直接使用URL加載JSON。 – Dijkgraaf