我在网络应用程序中使用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,以及某些类型的。$每个卸妆也失败了。请帮助我如此卡住。
答案 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的答案,但我没有足够的声誉来评论:/奇怪的系统....