我有两个简单的功能:
function getBatchSliceInfo(batch_num){
//get the batch slice info for the batch_num
alert('batch num is ' + batch_num); //returns the batch_num correctly
$.getJSON("statistics_batchdb.jsp", {batch_number: batch_num, slice_stats: 'true'}, showTable);
}
function showTable(data){
$("#table_slice_stats").hide();
if(data.error){
console.log("Something went wrong");
}
var jo = $.parseJSON(data);
alert('This JSON object has this many elements: ' + jo.length);
$.each(jo[0], function (i, val){
alert('This i value is' + i );
alert('This val value is' + val);
});
$("#table_slice_stats").show();
}
所以我点击一个按钮就调用了getBatchSliceInfo,我们得到了JSON。
响应似乎是正确的,所以服务器端我没问题。
但是,我没有正确地将该响应传递给showTable。 “data”似乎为null,因为在控制台中我收到错误:
Uncaught TypeError: Cannot read property 'length' of null batch_statistics_new.jsp:274
showTable batch_statistics_new.jsp:274
o jquery-1.7.2.min.js:2
p.fireWith jquery-1.7.2.min.js:2
w jquery-1.7.2.min.js:4
d jquery-1.7.2.min.js:4
我确信这是一个非常简单的语法问题,但我不知道发生了什么。
答案 0 :(得分:1)
检查您的data
var data= [{slice_name:Nutrion,iteration_zero:.....},{......},{......}]
转换为json Format.your数据后会变成这样,
var data= {[{slice_name:Nutrion,iteration_zero:.....},{......},{......}]} //It not json format.
如果你想使用长度属性,它会抛出异常。所以,不要解析为json,也要做同样的思考。