2017-10-04 136 views
0

我想加載一個JSON文件到數組中,然後從數組中讀取但警報沒有顯示任何數據。從JSON文件中讀取數據與數據加載數據

JSON文件:data.json

[ 
{"Name":"name1", "Occupation":"occ1"}, 
{"Name":"name2", "Occupation":"occ2"}, 
{"Name":"name3", "Occupation":"occ3"}, 
{"Name":"name4", "Occupation":"occ4"}, 
{"Name":"name5", "Occupation":"occ5"} 
] 

jQuery代碼

function getJsonData() { 
    var arrJson = []; 

    $.getJSON("data.json", function(data){ 
     arrJson = data; 
    }); 
    return arrJson;  
}; 

$(document).ready(function(){ 
    var data = []; 
    data = getJsonData(); 
    //console.log(data); 

    $.each(data, function(i, value){ 
     alert('index: ' + i + ',value: ' + value); 
    }); 
}); 

我缺少什麼?

問候, 埃利奧·費爾南德斯

回答

0

getJsonData();是一個異步功能,這意味着它返回一個不同的時間表爲腳本的其餘部分的答案。

你需要做的是實現一個callback

否則,移動foreach循環的異步函數內也將這樣的伎倆:

$.getJSON("data.json", function(data){ 
    arrJson = data; 
    $.each(data, function(i, value){ 
     alert('index: ' + i + ',value: ' + value); 
    }); 

}); 
+0

嗨Skarlinski,我是新來的jQuery和我不不知道如何實現這個回調。你有一個使用getJSON進行回調的例子,你可以分享嗎? –

+0

只需使用我共享的代碼而不是回調 – Skarlinski