我有一个完美的查询,可以通过NYT API提供2017年至2018年的NFL文章列表。
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?' + $.param({
'api-key': "XXXXXXXXXXXXX",
'q': "NFL",
'begin_date': "20180101",
'end_date': "20181101",
'sort': "newest",
'fl': "headline",
'facet_field': "article"
});
$.ajax({
url: url,
method: 'GET',
}).done(function(result) {
console.log(result);
}).fail(function(err) {
throw err;
});
我尝试安慰“ results.docs [x] .headline.main”,以获得标题列表,但会引发错误。
最终的预期结果如下
<div>
<p>headline 1: "Phillies win again"</p>
<p>headline 2: "New Quarter Back for Dolphins"</p>
<p>headline 3: "NY Giants go up for sale"</p>
<p>headline 4: "Running back trips over hotdog"</p>
</div>
我什至尝试将其作为结果和响应放入变量中,但是没有运气。我不确定我在这里缺少什么。
答案 0 :(得分:0)
弄清楚了。问题在于解码JSON结果的方式。
function buildQueryURL() {
var queryURL = "https://api.nytimes.com/svc/search/v2/articlesearch.json?";
var queryParams = { "api-key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" };
queryParams.q = "NFL";
queryParams.begin_date = "20170101";
queryParams.end_date = "20180101";
return queryURL + $.param(queryParams);
}
function updatePage(NFLNews) {
var numArticles = 3
for (var i = 0; i < numArticles; i++) {
var article = NFLNews.response.docs[i];
var headline = article.headline;
console.log(headline.main)
var headlinelink = article.web_url;
console.log(headlinelink)
}
}
var queryURL = buildQueryURL();
$.ajax({
url: queryURL,
method: "GET"
}).then(updatePage);
我必须声明并加入结果的每一层,以清除docs数组每次迭代中的主要标题。我不仅可以清除标题,还可以清除每个标题的关联链接。