2012-05-05 57 views
1

JSON的新手,只是試圖弄溼我的腳。如何複製JSON的XMLHttpRequest

我知道如何用XML通過javascript來做到這一點,但我試圖學習如何處理JSON對象,所以我可以切換。

基本上,我想通過所有的「永久」搜索下面的JSON對象,當我找到合適的人,救其相應的「標題」和「身份證」標籤的JavaScript變量的代碼: http://api.soundcloud.com/users/goldenstatewarriors/tracks.json?client_id=02db8e29aa2fb5bf590f478b73137c67

這可以用只有JavaScript(沒有PHP)完成嗎?我面臨的主要問題是簡單地從頁面抓取文本並將其轉換爲json對象。

回答

1

您需要使用JSON解析器才能將JSON字符串轉換爲您可以在JavaScript中原生處理的對象。最近的瀏覽器將這個功能作爲JSON.parse()內置,但顯然這在舊版瀏覽器中不起作用(我們在這裏說的是非常老的瀏覽器)。

該問題的解決方案是使用可用的JSON解析庫here。如果檢測到本機瀏覽器支持,則只需使用該支持,否則它會通過JavaScript實現來實現相同的結果。您需要的文件是json2.js - 只需將其包含在其他庫中即可,然後離開!

代碼的一個例子是:

var dataObject = JSON.parse(jsonData); 

作爲一個方面說明,XMLHttpRequest是有點用詞不當的這些日子。它只是一種用於製作HTTP請求和檢索返回數據的機制,它不一定是XML。它可以是純文本,(非X)HTML,JSON,任何東西。實際上,我不認爲我已經在很長的時間內看到任何XMLHttpRequest實際XML數據。

+0

感謝您的快速回復。這是有道理的,但我仍然不確定如何從外部網站獲取jsonData(在我的情況下是SoundCloud) – dougmacklin

+0

啊,所以通過編輯我可以使用HttpRequest來獲取JSON文本? – dougmacklin

+0

我修改了我的答案 - 本質上,XHR請求不需要返回XML。您將遇到的一個問題是同源策略。基本上這意味着你不能向不同的領域提出請求而沒有一些贅述。快速搜索StackOverflow和http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing應該會給你更多的信息。或者,您可以使用服務器端腳本充當您的站點與SoundCloud之間的中介。 –