2013-07-20 261 views
0

我有這個json響應,我想用Javascript解析。解析JSON響應

[{"video_source_id":100,"title":"YouTube Top Rated"}, 
{"video_source_id":101,"title":"YouTube Top Favorites"}] 

我是Java Script,JSON的新手。什麼是解析並顯示在網頁中的最佳方式?

這裏是我有什麼,但我發現了以下錯誤

TypeError: Cannot read property '0' of undefined

在該行

document.getElementById("video_source_id").innerHTML = jsonObj.video_source_id[i]; 

全碼:

function loadJSON() 
{ 
    var http_request = new XMLHttpRequest(); 
    try{ 
     // Opera 8.0+, Firefox, Safari 
     http_request = new XMLHttpRequest(); 
    }catch (e){ 
     // Internet Explorer Browsers 
     try{ 
      http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     }catch (e) { 
      try{ 
       http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
      }catch (e){ 
       // Something went wrong 
       alert("Your browser broke!"); 
       return false; 
      } 
     } 
    } 
    var data_file = "/vcaWS/api/sources"; 

    http_request.onreadystatechange = function(){ 
     if (http_request.readyState == 4 ) 
     { 
      // Javascript function JSON.parse to parse JSON data 
      var jsonObj = JSON.parse(http_request.responseText); 

      // jsonObj variable now contains the data structure and can 
      // be accessed as jsonObj.name and jsonObj.country. 
      for(var i=0;i<jsonObj.length;i++){ 
       document.getElementById("video_source_id").innerHTML = jsonObj.video_source_id[i]; 
      } 
     } 
    } 
    http_request.open("GET", data_file, true); 
    http_request.send(); 
} 
+0

你似乎已經解析(在你的代碼中,我看到'JSON.parse')的JSON。你的代碼有問題嗎?如果是,他們是什麼?你期望會發生什麼,實際發生了什麼? 「最好」的方式是產生你想要的結果。不幸的是,我們不知道你想要什麼。 –

+0

它給出了循環內的錯誤... – user2602727

+0

你是否願意告訴我們錯誤是什麼? –

回答

0

jsonObj是一個數組。陣列沒有video_source_id property。但數組中的對象可以。所以我相信你想要jsonObj[i].video_source_id來代替,即「訪問jsonObji th元素的video_source_id屬性」。

參見:Access/process (nested) objects, arrays or JSON