2012-04-18 28 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