无法使用.each方法在JQuery中循环JSON响应

时间:2016-11-01 16:24:19

标签: javascript jquery json ajax api

我无法使用。提取对象属性。 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//

        })

    });



})();

Picture of JSON response

1 个答案:

答案 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);
});