2011-06-01 97 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