Начало работы с JSON и API Yelp - PullRequest
0 голосов
/ 13 июля 2010

Я пытаюсь использовать Yelp API для получения местных ресторанов в зависимости от широты и долготы пользователя. Проблема в том, что я совершенно уверен, как это сделать. Глядя на страницу, с которой мне нужно извлечь данные, он говорит, что это тип text / plain. Могу ли я использовать Ajax для этого или не смогу, так как это другой домен?

РЕДАКТИРОВАТЬ: страница, с которой я пытаюсь получить содержимое: http://api.yelp.com/business_review_search?term=yelp&tl_lat=37.9&tl_long=-122.5&br_lat=37.788022&br_long=-122.399797&limit=3&ywsid=w_HyGEVjKFHYZdJC9DQBHg

Я мог бы сделать это в PHP без проблем, используя file_get_contents (), но сайт построен с использованием asp. Есть ли подобная функция в asp? Возможно, я мог бы использовать промежуточную страницу как своего рода прокси для получения и вывода данных.

Ответы [ 2 ]

1 голос
/ 20 сентября 2013

Вы можете сделать все это в Classic ASP без использования каких-либо других языков или страниц. Вам понадобится одна вещь - есть библиотека JSON2.ASP, которая вам понадобится для анализа результатов. Вы можете узнать больше об этом здесь:

http://zend.lojcomm.com.br/entries/classic-asp-json-revisited/

https://github.com/nagaozen/asp-xtreme-evolution/blob/master/lib/axe/classes/Parsers/json2.asp

Получив эти данные, вы можете получить результаты Yelp и легко их проанализировать в Classic ASP. Я делаю это с API 1.0, так как это немного проще, но вы можете использовать это в качестве отправной точки, чтобы сделать это в API 2.0, если хотите быть уверенным.

Ниже приведен код, который будет возвращать результаты поиска ресторана. Вы, конечно, должны заполнить свой код API, где YWSID указан в URL ниже. Я передаю результаты в массив, а затем строю таблицу из массива для отображения на странице, но как только у вас есть данные, вы можете делать с ними все, что захотите.

<!--#include file="JSON2.asp"-->
<%
set xmlHTTP = server.createobject("MSXML2.ServerXMLHTTP.6.0")
xmlHTTP.open "GET", "http://api.yelp.com/business_review_search?location=Clare%20Ireland&ywsid=XXXXXXXXXX&category=restaurants", false
xmlHTTP.send()
RawFeed = xmlHTTP.ResponseText
Set RawResults = JSON.parse(join(array(RawFeed)))
For Each YelpFeed In RawResults.Get("businesses")
 If YelpFeed.Get("is_closed") = "False" Then
  Response.write YelpFeed.Get("name") & "<br>" & vbNewLine
  Response.write YelpFeed.Get("rating_img_url") & "<br>" & vbNewLine
  Response.write YelpFeed.Get("address1") & "<br>" & vbNewLine
  Response.write YelpFeed.Get("phone") & "<br>" & vbNewLine
  Response.write YelpFeed.Get("photo_url") & "<br>" & vbNewLine
  Response.write YelpFeed.Get("review_count") & "<br>" & vbNewLine
 End If

Next
Set RawResults = nothing  
%>
0 голосов
/ 27 июля 2010

В итоге я использовал промежуточную страницу, которая взяла страницу из Yelp и вывела JSON.Вот фрагмент кода:

SET XmlObj = Server.CreateObject("Microsoft.XMLHTTP")
XmlObj.open "POST", url, FALSE
XmlObj.send
Response.write(XmlObj.responseText)

На моей исходной странице я использовал Ajax, чтобы получить выходные данные с моей промежуточной страницы, а затем JavaScript, чтобы декодировать JSON и вывести результаты.

Itработает хорошо, но я уверен, что есть лучший способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...