2013-07-03 57 views
0

我試圖得到一個簡單的JSON請求與jQuery工作。我想從Trakt獲得新節目的首映(API:http://trakt.tv/api-docs/calendar-premieres),但無法瀏覽節點。似乎我可能需要在URL中的API密鑰後附加日期,但我不確定,因爲處理JSON對我來說是非常新的。jQuery的一個非常簡單的JSON請求

$.ajax({ 
     type: "GET", 
     url: [url_with_actual_api_key], 
     dataType: "json", 
     async: true, 
     cache: false, 
     success: function(data){ 
     $.each(data, function(data, value) { 
      $(".title").append("<div class='item'><span>Title:</span>" + value.title + "</div>"); 
     }); 
     } 

我越來越UNDEFINED當然,因爲我試圖檢索數據幾級「更深」。此外,value.episode什麼也沒有顯示,標題是我得到的最接近的。我的問題是,如何從API日期的每個情節的請求中獲取全部數據?

非常感謝和百萬highfives。

+0

「但無法通過節點導航」 ---這是什麼意思? – zerkms

+0

因此,您獲得的'data'看起來像[鏈接的API文檔](http://trakt.tv/api-docs/calendar-premieres)中的* Example Request *? (或者你使用'date'參數,他們省略了包裝數組嗎?) – Bergi

+0

我沒有使用數據參數,因爲我記下了如何去做或者我真的需要它。我沒有收到任何數據,除了「未定義」。當我使用http://trakt.tv/api-docs/shows-trending作爲具有相同代碼的URL(value.title)時,我可以獲得標題。我有點困惑和迷失。 – Zrth

回答

1

您需要遍歷兩次,因爲你的date數組,其中包含的episodes數組:

success: function(data){ 
    // for each date 
    $.each(data, function(index, broadcastDate) { 

     // broadcastDate.date has the date 
     // broadcastDate.episodes has the show data. 

     $.each(broadcastDate.episodes, function(index,episode) { 

      // episode contains show and episode objects 

      $(".title").append("<div class='item'><span>Title:</span>" + episode.show.title + "</div>"); 
     }); 
    }); 
+0

謝謝,這似乎是工作。此外,奇怪的事情,只有前幾個項目返回,而不是整個數據。任何想法,爲什麼這可能會發生? – Zrth

+0

我無法設置並運行它,因爲我沒有API密鑰。我假設你可以訪問Firebug或Chrome開發者工具。如果是這樣,請檢查傳入的數據,逐步執行代碼(可能是我的函數有問題,或發生了一些意外情況),請檢查輸出是否在您認爲的位置。這是基本的調試東西。 – 2013-07-03 01:56:38