2011-12-02 189 views
1

我發現了一個jquery函數在線,然後我稍微調整了一下,但是它需要一個YouTube頻道提要數據並將它變成一個json對象。然後它存儲來自對象數組的數據。我需要存儲額外的數據,但我不知道如何顯示數據,所以我可以看到它的數組中的數據。我確定這聽起來很混亂,那是因爲我不知道json對象或如何在jquery中打印數據。我以前在php中使用打印函數完成了它,我相信。如何打印json對象數組

這是中提到的功能:

$j(function() { 
    $j.getJSON('http://gdata.youtube.com/feeds/users/iCallOfDutyFILMS/uploads?orderby=published&alt=json-in-script&callback=?&max-results=1', function(data) { 
     $j.each(data.feed.entry, function(i, item) { 
      var updated = item.updated; 
      var url = item['media$group']['media$content'][0]['url']; 
      var thumb = item['media$group']['media$thumbnail'][0]['url']; 
      var numViews = item['yt$statistics']['viewCount']; 
      //var vidDescription = item['']['']; 
      var width = 710; //only change this number 
      var height = width*9/16; 
      //...rest left out... 

     }); 
    }); 
}); 

我想打印出數組,看看如何抓住視頻描述。我只是不知道通過數組的路徑。有沒有辦法在jQuery中打印出類似於我能夠在PHP中的數組?

回答

1

在Chrome或Firefox,按F12,這將帶來的督察。點擊'控制檯'顯示控制檯窗口。

現在在您的JavaScript代碼中,無論您想要打印或「檢查」的變量或對象。將其傳遞到控制檯日誌方法。

var your_array_variable = "a string variable"; 
console.log(your_array_variable); //<-- This is what you want to do! 

現在刷新頁面並運行您正在構建的事件或函數。

瞧!......在您的控制檯窗口中,您應該看到>Object(如果您打印一個對象)。

或者在上面的示例中,您將在控制檯中看到a string variable

單擊展開樹節點,(>)查看對象/變量的詳細信息。

你幾乎可以任何console.log!它是一個很好的方式來了解發生了什麼事情。

你也可以設置'斷點',但這是一個完整的其他問題!

我覺得是你的尋找:

console.log(data); // To show the JSON data received


更新
試試這個,它的工作對我來說,在控制檯你會看到2個對象,你可以點擊並檢查。第一個是來自json請求的數據,第二個是循環在$ .each中的項目。 這工作對我來說,點擊任何與id="get_json"。這將發出請求,並將響應記錄到控制檯。

$('#get_json').click(function(e){ 
     e.preventDefault(); 
     $(function() { 
      var json_url = 'http://gdata.youtube.com/feeds/users/iCallOfDutyFILMS/uploads?orderby=published&alt=json-in-script&max-results=1&callback=?'; 
      $.getJSON(json_url, function(data) { 
       console.log(data); // Here we log to our console 
       $.each(data.feed.entry, function(i, item) { 
        console.log(item); // This is what you want i think 
        var updated = item.updated; 
        var url = item['media$group']['media$content'][0]['url']; 
        var thumb = item['media$group']['media$thumbnail'][0]['url']; 
        var numViews = item['yt$statistics']['viewCount']; 
        //var vidDescription = item['']['']; 
        var width = 710; //only change this number 
        var height = width*9/16; 
        //...rest left out... 

       }); 
      }).success(function() { alert("success"); }) 
      // Errors are your friend!.. Use them.. 
       .error(function(jqXHR, textStatus, errorThrown) { 
         console.log("error " + textStatus); 
         console.log("error throw " + errorThrown); 
         console.log("incoming Text " + jqXHR.responseText); 
        }) // End of .error 
       .complete(function() { alert("complete"); }); 
      }); 
     }); 
+0

我的頁面加載後,我鍵入console.log(數據);它說「數據未定義」。但它在我上面發佈的代碼中說,數據是存儲對象的地方。然後我輸入var data =「hey」; console.log(data);只是爲了測試它,並打印出'嘿'。我失去了爲什麼在你的例子中,我應該聲明一個新的變量,當它應該已經由我的jquery/js代碼創建?我認爲它已經被宣佈。幫幫我? –

+0

不僅僅是該函數的開始和結束的數據範圍?或者和系統語言不一樣,變量仍然存在? –

+1

嗨,我更新了我的帖子,試用了它,它爲我工作了100%,它將數據和項目記錄到控制檯,您可以通過點擊它們來檢查它們。 – Anil

2

做一個console.log(yourarray);您將能夠在瀏覽器JavaScript控制檯中看到輸出。

3

如果您使用Firebug或其他開發人員工具,可以使用console.log(data),然後檢查Firebug中的JSON響應(或任何正在使用的檢測工具)。然後,您可以使用該視圖來確定訪問所需視頻說明的「路徑」。

祝你好運。

+0

當我在網上搜索,我確實看到使用控制檯作爲我的情況的補救措施,但我不知道如何使用控制檯。我使用螢火蟲。我會在控制檯輸入什麼來獲得所述結果?我相信這個數組被稱爲'item'。我確實嘗試了console.log(item);它說項目沒有定義。 :/ –

+0

就你而言,你想要做console.log(數據)。然後右鍵點擊瀏覽器,選擇「Inspect Element」,然後在Firebug彈出時點擊Console選項卡。您運行Ajax調用,並且您應該看到在控制檯中彈出一個響應。它應該是綠色的。點擊它,它會像樹一樣展開並向您展示JSON響應的各個部分。祝你好運。 – Jemaclus

+0

您需要將'console.log(data);'放入代碼中。代碼運行後,只需調出控制檯(F12),它就會出現在@Jemaclus描述的樹視圖中。或者,您可以在數據返回後在您的JS代碼中放置一個斷點。 – jabclab

1

爲什麼不使用內置在瀏覽器中的檢查器來查看對象? Chrome,Firefox和更新版本的IE都具有檢查器,可以幫助您,而無需編寫任何自己的代碼。

0

如果您的瀏覽器或環境有正確的JSON對象(如火狐),您可以使用JSON.stringify(obj)對象轉換爲字符串,並按照自己的喜好使用。