2015-12-03 73 views
2

我想從服務器拉下json並將其解析爲Javascript對象。這裏是我的JSON的樣子:從服務器請求JSON並使用Javascript解析

{ 
    "tour1": [ 
    { 
     "title": "building1", 
     "description": "Tour of building1", 
     "image": "Icon.png", 
     "video": "tour.mp4", 
     "length": "0.00", 
     "version": "1.0", 
     "timestamp": "1111111111" 
    } 
    ] 
} 

這裏是requst到服務器:

<!DOCTYPE html> 
<html> 
<body> 
    <h2>Parse JSON from Server</h2> 
    <p id="demo"></p> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">      </script> 
    <script> 
     $.ajax({ 
      url: "mysite.com/videos/tour.json"; 
     var j = []; 
     $.ajax({ 
      type: 'GET', 
      url: url, 
      dataType: 'json', 
     }); 
     window.alert(j.tour1[0].title); 
    </script> 
</body> 
</html> 

我無法理解爲什麼它不工作。我是新來的JavaScript。我很感謝這個問題的任何幫助。

+2

檢查[ajax](http://api.jquery.com/jquery.ajax/)語法 – Tushar

+1

您有語法錯誤。我建議你使用Visual Studio這樣的東西。 – CoderPi

+0

請檢查答案bellow upvote/downvote,評論,選擇正確的答案。 –

回答

3

我覺得更好,如果你使用getJson,當你想從使用GET HTTP請求的服務器加載JSON編碼的數據,例如檢查波紋管:

$.getJSON("mysite.com/videos/tour.json", function(j) { 
    alert(j.tour1[0].title); 
}); 

希望這有助於。

1

Ajax調用是一個異步調用,只要您的ajax語句結束,j就不會被填充。的Ajax

使用成功處理程序,以提醒第j(未測試的代碼)

$.ajax({ 
    url: "mysite.com/videos/tour.json", 
    method: "GET", 
    dataType: "JSON", 
    success: function(data){ 
    window.alert(data.tour1[0].title); 
    } 
}); 
0

gurvinder給出最佳的解決方案,因爲如果你在放AJAX請求,那麼你必須趕上響應,但是如果你在代碼中提醒你的請求仍然有效,並且j必須是未定義的,因爲它不是全局變量。 有很多錯誤的:

  1. 檢查您的AJAX-synthax,因爲宣言 「VARĴ..」 是錯誤的,
  2. 從不使用 「;」在對象聲明中,始終使用「,」
  3. 在您的警報中,您嘗試查找變量「j」,但j不存在,它是未定義的。