2016-11-01 19 views
-1

。を使用してオブジェクトプロパティを抽出できません。 Jqueryのeach()メソッド私はconsole.log(結果)を使って完全な応答を見ることができますが、その応答から抽出することはできません。 .eachメソッドでresult.snippetを使用しようとすると、未定義または[Object object]というメッセージが表示されます。 .eachを他のjsonレスポンスに使用すると、data.valueを使用して抽出することができますが、この応答では機能しません。.eachメソッドを使用してJQueryでJSON応答をループすることができません。

(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

それが「ない方法を説明してください:

response.docs[0].snippet 

あなたが各ドキュメントを繰り返すことができ仕事 "、エラー表示など – Soviut

+0

また、実際には何ですか?ここでやりたい? – Soviut

+1

あなたのコードをjsfiddleに入れ、あなたが望むものをもっと詳細に説明してください。 –

答えて

2

あなたが取得している応答は、オブジェクト、配列ではありません。オブジェクトを反復処理することはできません。オブジェクトのキーを反復処理し、各キーを参照することができます。どちらの場合でも、反復を行うためにjQueryは必要ありません。あなたのケースでは

var response = { 
 
    "hello": "world", 
 
    "foo": "bar" 
 
}; 
 

 
for (var key in response) { 
 
    console.log(key, response[key]); 
 
}
は、 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

関連する問題