没有第三方解析foursquare json

时间:2012-11-17 15:53:00

标签: javascript json parsing foursquare getjson

我在网络应用程序中使用foursquare API,我接到了foursquare的调用并且结果已经死了,但我无法按照我想要的方式解析它。我不想使用第三方解析器,因为那些让我很困惑。我希望应用程序通过距离提醒可点击的地点名称列表,并且当点击时,变量被分配给该地点的纬度和地点。

$(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,

到目前为止,我已经尝试过失败的第三方杰克逊,警告失败的名字,失败的document.write,以及某些类型的。$每个卸妆也失败了。请帮助我如此卡住。

2 个答案:

答案 0 :(得分:0)

jQuery已经使用$.getJSON解析您的JSON文件。除非您使用的是旧浏览器,否则您不需要第三方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);
    });
});

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

答案 1 :(得分:0)

@ Celeste

我认为您可以通过在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的答案,但我没有足够的声誉来评论:/奇怪的系统....