在我有的JQuery变量中,例如:
var states = ["Alabama", "Alaska", "Arizona", "Arkansas", "California"];
在states.json
文件中,我的内容完全相同:
["Alabama", "Alaska", "Arizona", "Arkansas", "California"]
如何获取此文件的内容并使用JQuery将其保存到变量?
这就是我想要做的事情:
$(document).ready(function(){
$.getJSON('./states.json',function(data){
//alert(data); //it works!
//opa=$.parseJSON(data); //ReferenceError: opa is not defined - SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
opa=data; //ReferenceError: opa is not defined
});
alert(opa); //it doesn't work
});
更新:
截图:
答案 0 :(得分:4)
首先验证您的JSON数据是否来自Server。
使用console.log(data);
并检查..
如果JSON
即将到来,那么您应该在var opa;
之前使用JSON
$(document).ready(function(){
var opa; //Try with this now
$.getJSON('./states.json',function(data){
opa=data;
alert(opa); //use Alert it will work.
});
});
或使用功能
$(document).ready(function(){
var opa; //Try with this now
$.getJSON('./states.json',function(data){
opa=data;
getDataAnywhere(opa);
});
});
function getDataAnywhere(opa){
//do anything with opa
}
答案 1 :(得分:3)
它不起作用,因为它是异步代码。您不能在getJSON外部使用变量opa,因此您需要将数据分配给全局上下文变量。
$(document).ready(function(){
var globalContext;
$.getJSON('./states.json',function(data){
globalContext=data;
});
});
alert(globalContext);
});