2017-12-06 7 views
0

私は何かを検索するたびにJSONを返すAPIを使用しています。これは基本的に自動完全検索APIです。ボックスに入力を開始するたびに、GETリクエストでAPIエンドポイントにヒットし、JSONを返します。 、あなたは「luckyを」入力を開始したと、その要求はhttps://autocomplete.clearbit.com/v1/companies/suggest?query=luckyあるとJSONレスポンスはjQueryを使用してJSONレスポンスのデータを表示

[{"name":"Lucky Brand","domain":"luckybrand.com","logo":"https://logo.clearbit.com/luckybrand.com"},{"name":"LuckyVitamin.com","domain":"luckyvitamin.com","logo":"https://logo.clearbit.com/luckyvitamin.com"},{"name":"Lucky Gunner Ammo","domain":"luckygunner.com","logo":"https://logo.clearbit.com/luckygunner.com"},{"name":"Lucky Orange","domain":"luckyorange.com","logo":"https://logo.clearbit.com/luckyorange.com"},{"name":"Lucky's Market","domain":"luckysmarket.com","logo":"https://logo.clearbit.com/luckysmarket.com"}] 

です。これは、名前、ドメインとロゴを返します。私はhtmlの検索ボックスを持っていますので、入力を開始するたびにlogo imagenameおよびdomainを各項目の行に表示したいと考えています。しかし、それは正しく表示されていません。

<input type="text" placeholder="type something ..." id="suggest" /> 

CSS: - - :

body{ 
    padding: 30px; 
} 

JS: - これは私のコード、

htmlです(私はjQueryのを使用しています)

$(document).ready(function() { 

    $("#suggest").autocomplete({ 
     delay: 100, 
     source: function (request, response) { 

      // Suggest URL 
      var suggestURL = "https://autocomplete.clearbit.com/v1/companies/suggest?query=%QUERY"; 
      suggestURL = suggestURL.replace('%QUERY', request.term); 

      // JSON Request 
      $.ajax({ 
       method: 'GET', 
       dataType: 'json', 
       jsonCallback: 'jsonCallback', 
       url: suggestURL 
      }) 
      .success(function(data){ 
       response(data[]); //Here I want to pass all the return 
            //items. I can show only one item, 
            //like data[1].name but not sure how 
            //to go through each item. 

      }); 
     } 
    }); 

}); 
+0

詳細 'しかしproperly'が表示されない - 適切に定義しますか? – Lewis

+0

多くの方法、ループ、またはマップのようないくつかのES6を使用する – Roljhon

+1

エンドポイントがjsonを返す場合、なぜjsonpCallbackを使用しようとしているのか少し混乱します。また、コンソールでそれを見た場合、コンソールのログに成功のハンドラを入れても、実際にコンソールにエラーが表示された場合には、それが役に立ちます。 – Taplar

答えて

0

あなたはforEachの使用することができます()あなたの応答を通過するメソッド

data.forEach(function(item) { 
    console.log(item.name, item.logo, item.domain); 
}); 

forEachのhere

関連する問題