json数据未分配给变量

时间:2014-06-17 19:30:15

标签: php jquery json

这是我的代码:

    var lastStampAlpha = 0;
    var lastStampBravo = 0;
    var lastStampCharlie = 0;
    var url = localPath + 'app/data/get-messages-id/resource/null';
    jQuery.getJSON(url, function(data){     
        lastStampAlpha = data.alpha;
        lastStampBravo = data.bravo;
        lastStampCharlie = data.charlie;
    });

这是我的JSON数据;

    {"alpha":"60","bravo":0,"charlie":0}

当我向它分配data.alpha后尝试使用lastStampAlpha时,它没有使用我试图将这些变量分配给的JSON数据。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

一旦回调被触发,您必须确保只尝试访问变量。

回调是getJSON方法中的函数。

确保在将值分配给变量之后,从回调中执行任何函数使用这些变量。

答案 1 :(得分:1)

如果你这样做:

     var lastStampAlpha = 0;
        var lastStampBravo = 0;
        var lastStampCharlie = 0;
        var url = localPath + 'app/data/get-messages-id/resource/null';
        jQuery.getJSON(url, function(data){     
            lastStampAlpha = data.alpha;
            lastStampBravo = data.bravo;
            lastStampCharlie = data.charlie;
        });
Alert(lastStampAlpha);

消息将为0。

如果你这样做:

 var lastStampAlpha = 0;
    var lastStampBravo = 0;
    var lastStampCharlie = 0;
    var url = localPath + 'app/data/get-messages-id/resource/null';
    jQuery.getJSON(url, function(data){     
        lastStampAlpha = data.alpha;
        lastStampBravo = data.bravo;
        lastStampCharlie = data.charlie;
        useVariables();
    });
function useVariables(){
  Alert(lastStampAlpha);
}

信息将是60。

答案 2 :(得分:0)

 jQuery.when(getMessageIds()).done(function(){})

 function getMessageIds(){
    var url = localPath + 'app/data/get-messages-id/resource/null';
    return jQuery.getJSON(url, function(data){      
        lastStampAlpha = data.alpha;
        lastStampBravo = data.bravo;
        lastStampCharlie = data.charlie;
    });     
}