2012-11-17 100 views
0

我在一个web应用程序中使用foursquare API,我打电话给foursquare并且结果死了,但我无法以我想要的方式解析它。我不想使用第三方解析器,因为这些解析器让我感到困惑。我希望应用程序通过距离提醒可点击场地名称的列表,并且单击时将变量分配给该场地的纬度和经度。解析foursquare json没有第三方

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

到目前为止,香港专业教育学院尝试第三方杰克逊失败,提醒出与失败的名称,文件撰写与失败,以及一些类型的$每卸妆。这也失败了。请帮助我如此卡住。

+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); 
    }); 
}); 

会打印出所有的场馆名称列表从查询返回。

+0

这有帮助!我终于可以用alert(data.response.venues [0] .name)来回应帕尔玛比萨了,但我无法让列表工作,它没有显示任何内容,当我警告控制台它只是说未定义。 – Celeste

+0

其实,我给他们分配了一个不同的变量,然后将它们回显到ala列表中。但它不会让我投票你的答案。 – Celeste

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的答案,但我没有足够的信誉评论:/怪系统....