0

我在一个网络应用程序中使用foursquare API,我调用了foursquare,结果已经死了,但我无法以我想要的方式解析它。我不想使用 3rd 方解析器,因为那些让我彻底困惑。我希望应用程序按距离提醒可点击的场地名称列表,并在点击时将变量分配给该场地的 lat 和 lng。

$(document).ready(function(){
 $.getJSON("https://api.foursquare.com/v2/venues/search?ll=-27.58818,-48.523248&   
   client_id=9&client_secret=9&v=20111107",
    function(data){
//code here
      });
    });

结果如下所示:

    {"meta":
  {"code":200},
 "response":
 {"venues":
 [{"id":"4c158143a1010f47a1364e18",
"name":"Parma Pizza",
 "contact":{"phone":"+554832346363","formattedPhone":"+55 48 3234-6363"},
"location":{"address":"R. Lauro Linhares, 1052",
"lat":-27.588341,
"lng":48.5232834,
 "distance":18,

到目前为止,我尝试了失败的第 3 方杰克逊,以失败警告名称,以失败警告 document.write,以及某种类型的 .$each 移除器也失败了。请帮助我被困住了。

4

2 回答 2

0

jQuery 已经在解析你的 JSON 文件了$.getJSON。除非您使用的是旧浏览器,否则您不需要 3rd 方 JSON 解析库。(尽管您应该在代码库中包含JSON3.js,以防万一有人尝试使用您的网站是在旧浏览器中。只需包含它即可。除此之外,您无需执行任何其他操作。)

传递给回调函数的data变量是一个 JavaScript 对象。然后,您可以data.meta.code获取code(200) 的值,或者data.response[0].name返回Parma Pizza

至于生成你的列表,你将不得不做艰苦的工作。不过,您可以使用$.each它轻松地迭代这些地方:

$.getJSON("https://api.foursquare.com/v2/venues/search?ll=-27.58818,-48.523248&client_id=9&client_secret=9&v=20111107", function(data){
    $.each(data.response, function(index, elm){
        console.log(elm.name);
    });
});

将打印出从您的查询返回的所有场地名称的列表。

于 2012-11-17T16:16:11.933 回答
0

@蔚蓝

我认为您可以通过在 tkone的代码中添加.venues来修复它。至少这对我有用。

$.getJSON("https://api.foursquare.com/v2/venues/search?ll=-27.58818,-48.523248&client_id=9&client_secret=9&v=20111107", function(data){
$.each(data.response.venues, function(index, elm){
    console.log(elm.name);
});

很抱歉没有评论 tkone 的答案,但我没有足够的声誉来评论:/奇怪的系统....

于 2015-05-16T13:24:08.610 回答