我无法使用。提取对象属性。 Jquery中的each()方法。我可以使用console.log(结果)查看完整响应,但我无法从该响应中提取。当我尝试在.each方法中使用result.snippet时,我收到一个undefined或[Object object]消息。当我将.each用于其他json响应时,我可以使用data.value进行提取,但对于此响应,它不起作用。
(function getArticles(){
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?' + $.param({
'api-key': "",
'q': "obama"
});
$.ajax({
url: url,
type:"GET",
data:{
}
}).done(function(result) {
console.log(result);
$.each(result, function () {
document.write(result.snippet); // This is not working, but works with other json responses from other API's//
})
});
})();
答案 0 :(得分:2)
您获得的响应是一个对象,而不是一个数组。你不能迭代一个对象。您可以迭代对象的键,然后引用每个键。在任何一种情况下,您都不需要jQuery来进行迭代。
var response = {
"hello": "world",
"foo": "bar"
};
for (var key in response) {
console.log(key, response[key]);
}

在您的情况下,要转到snippet
:
response.docs[0].snippet
您可以迭代每个文档:
response.docs.forEach(function(doc) {
console.log(doc.snippet);
});