jQuery的。将JSON作为结果分配给变量

时间:2010-12-28 13:17:13

标签: javascript ajax jquery

我使用这个帮助函数来接收我的请求的JSON结果:

function getData(url) {
    $.get(url,
         function(data) {
             response = data;
             return response;
         }, 'application/json');
}

我从我的网络应用程序中给它一些字符串作为url的一部分,比如'/ api / getusers',所以它看起来像getData('/api/getusers')。现在我需要包含从url收到的JSON数据的字符串结果分配给我的变量,所以它看起来像这样:var result = getData('/api/getusers')。然后我将处理这个JSON数据。问题是返回响应变量。这是未定义的。谢谢!

3 个答案:

答案 0 :(得分:7)

试试这个

function getData(url) {
var data;
    $.ajax({
        async: false, //thats the trick
        url: 'http://www.example.com',
        dataType: 'json',
        success: function(response){
           data = response;
        }
    });
    return data;
}

答案 1 :(得分:6)

这是一个异步操作,意味着当function(data) { ... }返回很久后,当服务器的响应可用时,getData()稍后运行 。相反,从该功能开始你需要的任何东西,例如:

function getData(url, callback) {
    $.get(url, callback, 'application/json');
}

然后当你调用它时,传入一个函数或引用一个使用响应的函数,如下所示:

getData("myPage.php", function(data) {
  alert("The data returned was: " + data);
});

答案 2 :(得分:1)

使用$ .ajax

$.ajax({
    url: 'http://www.example.com',
    dataType: 'json',
    success: function(data){
       alert(data.Id);
    }
});