2012-04-18 52 views
0

我使用jQuery读取包含数字的简单数组一个JSON文件,因为这样的:阅读JSON在jQuery Mobile的返回“未定义”

({ 
"values": [ 
     { 
     "12", 
     "32", 
     "21", 
     "23", 
     "34" 
     "43", 
     "52", 
     "86", 
     "25" 
     } 
]}) 

我的JS(如下)不断返回“未定义” 。有人可以帮忙吗?

$('#dataviewer').live('pageshow', function() { 
     $.getJSON("test.json", "chartData"); 

     $(function chartData(data) { 

     var chartString = ""; 

     $.each(data, function(index){ 
      chartString += index.values; 

     }); 
     alert('chartString' + chartString); 

     }); 
     }); 
+2

您的JSON无效,请点击此处http://jsonlint.com/ – 2012-04-18 15:18:58

+0

无效的JSON是...无效。 – 2012-04-18 15:19:56

+0

为什么要将命名的'chartData'函数传递给jQuery'DOMReady'事件?另外,您并没有将'chartData'函数传递给'$ .getJSON',而是将一个字符串作为数据传递给服务器。 – 2012-04-18 15:21:09

回答

0

有很多错误用你的javascript,它应该更像这样:

$('#dataviewer').live('pageshow', function() { 
    $.getJSON("test.json", chartData); 
    function chartData(data) { 
     var chartString = ""; 
     $.each(data.values, function(index,val){ 
      chartString += val; 
     }); 
     // or simply... 
     // var chartString = data.values.join(","); 
     alert('chartString' + chartString); 
    } 
}); 

此外,json显然无效,正如许多其他答案中所述。

+0

完美,非常感谢!感谢您指出我的不正确的JSON(@ all) - 显然我还有很多东西需要学习。 – Squishy 2012-04-18 15:31:32

1

我觉得应该是:

{ "values": [ 
     "12", 
     "32", 
     "21", 
     "23", 
     "34" 
     "43", 
     "52", 
     "86", 
     "25" ]} 
0

尝试删除 '{' 和 '}'

({"values": [ "12", "32", "21", "23", "34", "43", "52", "86", "25"]}) 
2

应该

{ 
    "values": [ 
     "12", 
     "32", 
     "21", 
     "23", 
     "34", 
     "43", 
     "52", 
     "86", 
     "25" 
    ] 
} 
+0

感谢您的帮助:) – Squishy 2012-04-18 15:32:47