我使用 Google Api 来检索地点详细信息,但 Google Api 根据类别一次只返回 20 个结果。JSON 解析文本包含 next_page_token ,它具有可用于检索包含结果的另一个页面等的引用。我的问题是如何将解析放入循环中,以便我可以获得所有总结果。
问问题
182 次
1 回答
1
所以你必须建立一个所有结果的列表,但在下载所有结果之前不要调用你的回调。在下面的代码中,我们一直调用函数来获取下一页结果,直到 next_page_token 不可用,在这种情况下,我们已经加载了所有结果并可以调用我们的回调函数。
var jsonresults = [];
function getPlacesResults(url, callback) {
var xhr = Ti.Network.createHTTPClient({...});
xhr.onload = function (data) {
var json = JSON.parse(data);
jsonresults.push(json)
if (json.next_page_token) {
//assumes next_page_token is a url we can pass in
getPlacesResults(json.next_page_token, callback);
} else {
callback(jsonresults);
}
}
xhr.open('GET', url);
xhr.send();
}
//used like so
getPlacesResults('http://www.google.com/whatever', function (allResults) {
//...do stuff with all of your results here.
});
于 2014-01-27T19:15:00.333 回答