2011-06-01 95 views
0

我有一個JSON數組存儲在一個文件data.json中 - 我用這裏推薦的代碼來解決類似的問題,解釋爲什麼當我在程序中稍後訪問數組時,它告訴我它未定義。JScript JSON數組訪問

var chartData = (function() { 
       var chartData = null; 
       $.ajax({ 
        'async': false, 
        'global': false, 
        'url': "data.json", 
        'dataType': "json", 
        'success': function (data) { 
         chartData = data; 
        } 
      }); 
      return chartData; 
     })(); 

幫助感謝!

編輯;用於訪問,我使用的陣列爲一系列在道場-圖表:http://dojotoolkit.org/grids-charts

後我嘗試初始化VAR chartData,唯一的其他點我使用它是在:

chart.addSeries("Name",chartData); 

編輯#2 ;如果它的事項的data.json文件的格式如下:

[#, #, #, ... , #] 
+0

向我們展示如何訪問陣列。更好的是,如果可以,向我們展示一個可行的例子。 – squidbe 2011-06-01 21:11:50

+0

您是否迴應了成功處理程序中返回的'data',以驗證您是否獲得了您期望的數據,而不是404錯誤配置的Web服務器等提供的200頁代碼的頁面? – 2011-06-02 19:18:16

回答

1

也許是因爲它不成功?我發現調試使用console.log(螢火蟲,或大多數現代web開發人員面板在鉻或即支持它)非常有用

您可以嘗試這段代碼來調試它。

var chartData = (function() { 
      var chartData = null; 
      $.ajax({ 
       'async': false, 
       'global': false, 
       'url': "data.json", 
       'dataType': "json", 
       'success': function (data) { 
        console.log('success'); 
        console.log(data); 
        chartData = data; 
       } 
       error: function (data) { console.log('error'); console.log(data); }, 
     }); 
     return chartData; 
})(); 
+0

好的,我收到錯誤消息。現在哪裏會離開我? – Drew 2011-06-01 21:33:10

+0

特別是XMLHttpRequest錯誤。無論如何。 – Drew 2011-06-01 21:34:20

+0

您可以驗證服務器端腳本是否正常工作嗎?例如通過跟蹤螢火蟲中的錯誤?另一個常見錯誤是你的json實際上是無效的json。 – Arend 2011-06-01 22:34:27

1

我猜你設置async: false它應該以某種方式工作。但更好的是異步使用它:

function handler(chartData) { 
    // all the code here that deals with chartData 
} 

$.ajax({ 
    url: "data.json", 
    dataType: "json", 
    success: handler 
}); 
+0

試過這個似乎沒有改變任何東西。 – Drew 2011-06-01 21:34:56