纽约时报的对象阅读,以HTML绘制文章表

时间:2018-11-13 07:29:05

标签: javascript jquery api

我有一个完美的查询,可以通过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>

我什至尝试将其作为结果和响应放入变量中,但是没有运气。我不确定我在这里缺少什么。

1 个答案:

答案 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数组每次迭代中的主要标题。我不仅可以清除标题,还可以清除每个标题的关联链接。