2015-06-19 53 views
0

我一直在回顧可汗學院API(https://github.com/Khan/khan-api/wiki/Khan-Academy-API),並將http://www.khanacademy.org/api/v1/topictree識別爲主要的API調用。我正在使用下面的代碼來獲取代表實際網站上相同菜單結構的類別列表。在JavaScript中迭代JSON響應的有效方法

$(document).ready(function() { 
$.ajax({ 
url: "http://www.khanacademy.org/api/v1/topictree", 
type: 'GET', 
dataType: "json", 
success: function(data) {        
     for(var i = 0; i < data.children.length; i++) 
     {      
      //$("#mylist").append("<a href='http://myurl.com/Courses.html?CatId="+data.children[i].id+"'>"+data.children[i].title+"</a><br/>");    
     }   
    } 
    }); 
}); 

我無法找到最有效的方式來獲取分類的子項,然後打印出它的URL和名稱的值。每次嘗試調用API時,我的瀏覽器都會掛起,因爲JSON響應大約有40mb的數據。位於https://github.com/Khan/khan-api/wiki/Khan-Academy-API的GITHUB網站提到您應該按主題過濾,但所提供的示例不在根級別,因此我無法確定該partent與子級的關係。

有人能幫我找到一種有效的方法來解析JSON響應並獲得每個頂級類別的子值嗎?另外,在提交任何代碼之前,您使用了哪些工具來遍歷API調用和JSON響應?感謝您提供任何幫助!

+0

無論你如何遍歷數據,下載40MB的聲音都像交易斷路器一樣。 –

+0

正確,但如果我能夠將過濾條件應用於根目錄,則不會刪除大小問題 - http://www.khanacademy.org/api/v1/topictree?這就是爲什麼我想弄清楚什麼要附加到根API調用的邏輯。 –

+0

正確,但依賴於該服務的API,與JavaScript或JSON無關。 –

回答

0

此外,在提交任何代碼之前,您使用了哪些工具來遍歷API調用和JSON響應?

如果您在開始編碼之前要求提供工具來檢查請求對API的響應,那麼Google Chrome擴展Advances Rest Client就是爲此而設計的。其他主流瀏覽器最有可能的等效擴展。