使用JQuery获取json内容

时间:2014-07-27 16:57:39

标签: javascript jquery json

在我有的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

});

更新:

截图:

enter image description here

2 个答案:

答案 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); 

});