2013-10-15 3 views
0

Я пытаюсь разобрать ответ json из google maps geolocation api. Я получаю ответ JSON с этим кодом:Geolocation classic asp json response

 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 

Я попытался получить значения для улицы (адреса отправления и назначения, и я пытался получить дистанцию, но я не могу заставить его работать

.

Как я могу получить значение в ответ, так что я могу использовать его в своем классическом коде осины?

+0

Это помогло бы, если бы вы показать нам, что вы пробовали и где/как это не удается. – AnonJr

+0

Я пробовал URL 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 ErrorCode 800a01c3 Описание Объект не коллекция

Line 55 (Для каждого подпункта в oJSON.data ("расстояние")) ответ

JSON в моем примере основан на примерных координатах и ​​не является фактическим местоположением. Адреса содержат только стандартный a-z.

+0

Это должно быть редактирование вопроса, поскольку это не ответ. Постскриптум \t Начиная с версии 1.13 декабрь 2013 года ASPJSON вы можете загрузить JSON напрямую с URL-адресом, как вы пытались сделать. – Dijkgraaf

0

Нагрузка JSON не работает. Вы должны загрузить ответ своего звонка в googleapis, а не 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

Начиная с версии 1.13 декабрь 2013 года ASPJSON вы можете загрузить JSON напрямую с помощью URL-адреса. – Dijkgraaf