2016-11-01 7 views
-1

Я не могу извлечь свойства объекта с помощью. каждый() в JQuery. Я могу просмотреть полный ответ с помощью console.log (result), но я не могу извлечь из этого ответа. Я получаю неопределенное или [Объект объекта] сообщение, когда я пытаюсь использовать result.snippet в методе .each. Когда я использую .each для других ответов json, я могу извлечь их с помощью data.value, но для этого ответа он не работает.Невозможно выполнить цикл ответа JSON в JQuery с методом .each

(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

+0

Пожалуйста, объясните, как это «не делает работа ", показать ошибки и т. д. – Soviut

+0

Кроме того, что вы на самом деле tr чтобы сделать здесь? – Soviut

+1

Поместите свой код в jsfiddle и объясните, что вам нужно. –

ответ

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); 
}); 
+0

Правильно ли это будет? для (var key in result) {console.log (key.result [snippet]);} – fullyconnected

+0

Вы должны четко разъяснить свой вопрос тем, что вы только что спросили, а именно: «Как я могу получить фрагмент в этом объекте ответа?» , Я обновил ответ. – Soviut

+0

спасибо. Сработало. – fullyconnected