2012-11-12 28 views
2

的JSON數據是這樣的:JavaScript不是從下面給出的URL提醒JSON數據

{ 
    "datum":[ 
     { 
     "id":"19", 
     "song":"The Age of Worry", 
     "path":"audio/age.mp3", 
     "artist":"John Mayer", 
     "album":"Born And Raised", 
     "genre":"Blues-Rock", 
     "year":"2012", 
     "filename":"age", 
     "extension":".mp3", 
     "size":"6.1539077758789 MB ", 
     "duration":"2:40", 
     "downloads":"0" 
     } 
    ] 
} 

我想提醒的歌曲名稱。下面的代碼只提醒編號但不是歌曲。我無法弄清楚這裏有什麼問題。


switch(id){ 
     case "1": 
      alert(id);    
      $.getJSON("http://localhost/musicstore/search.php?media=audio&search_by=song&search_string=age", function(d) { 
       $.each(d.datum, function (i, res) { 
         alert(res.song);      
        }); 

      }); 

      break; 
     case 2: 
      break; 
     case 3: 
      break; 
     } 
+1

對於一個更大的機會求助,請發表您的JSON對象的示例字符串。 – reporter

+0

它可能是一個跨域問題或其他問題。請在$ .each之前添加'console.log(d);'並給我們firebug控制檯輸出。 – Varon

+0

我在代碼中看不到任何問題。勾選此http://jsfiddle.net/eT4Na/2/ – Pavan

回答

4

添加此fiddle驗證。你的.each邏輯工作得很好,假設你的JSON數據像你的例子所說的那樣回來了。所以這個問題必須在你的PHP腳本中返回JSON。

這裏是簡化的小提琴只是爲了測試你的。每個邏輯:

var jsonData = {"datum":[{"id":"19", "song":"The Age of Worry", "path":"audio/age.mp3", "artist":"John Mayer", "album":"Born And Raised", "genre":"Blues-Rock", "year":"2012", "filename":"age", "extension":".mp3", "size":"6.1539077758789 MB ", "duration":"2:40", "downloads":"0" }]}; 
$.each(jsonData.datum, function (i, res) { 
    alert(res.song);      
});​ 
+0

太感謝你了。:) – GaurabDahal

+1

@vinique,如果這個答案(或其他)解決您的問題將其標記爲已接受。樂意效勞! – davidethell

0

據我知道,當你想警報JSON數據只顯示像[object Object],使用的console.log()來代替,需要安裝該

+0

或者只是使用Chrome的控制檯:) – thinklinux

+0

-1,因爲這並沒有真正回答他的問題。他沒有提醒java對象,而只是將正確輸出的對象的一個​​屬性。 – davidethell

+0

或歌劇(STRG + I),或在IE9(F12),或在... – Varon

0

假設響應是有效的螢火蟲,如果來自服務器的響應的Content-Type頭被正確地設置爲application/JSON

+0

他用。每次的循環,資源將是a的值。給定的鍵/值對。所以在他的例子res.song是有效的語法。 – davidethell

+0

我的壞!沒注意到正確的。修我的答案 – Checksum