2012-02-04 132 views
1

這是對我的ajax調用的響應。我想處理每個數組元素來更新我的頁面上具有Letter元素值的相應按鈕的標題。我需要更換警報(響應);在json數組上循環。 {「PAGESNUM」,「LETTER」],「DATA」:[[「372」,「A」],[「922」,「B」],[「779」,「 C 「] [」 3 78" , 「d」] [ 「132」, 「E」],[ 「353」, 「F」],[ 「551」, 「G」],[ 「591」 , 「H」],[ 「6」, 「I」],[ 「340」, 「J」],[ 「261」, 「K」],[ 「314」, 「L」],[」 837" , 「M」],[ 「88」, 「N」],[ 「120」, 「O」],[ 「303」, 「P」],[ 「14」, 「Q」],[」 355" , 「R」],[ 「762」, 「S」],[ 「235」, 「T」],[ 「12」, 「U」],[ 「44」, 「V」], [ 「581」, 「W」],[ 「49」, 「Y」],[ 「19」, 「Z」]]}jquery ajax - 如何處理json響應

$.ajax({ 
    type: "Get", 
    url: "cfc/basic.cfc?method=CountUsersByLetter&returnformat=json", 
    data: "nbw=" + nbw, 
    datatype: "html", 
    success: function (response) { 
     //usercount = parseInt(response.substring(0, 10)); 
     ///$(_$this.target).attr('title', usercount); 
     alert(response); 
    }, 
    error: function (xhr, textStatus, errorThrown) { 
     alert('errorThrown'); 
    } 
}); 

回答

1

JavaScript是大小寫敏感的,所以你要想讓該參數dataType,如果你得到JSON回來,然後不要告訴jQuery的是你期待的「HTML」

dataType: "json", 
    success: function (response) { 
     alert(response.DATA[0][1]);//should alert "A" 
    } 

如果你需要做一些循環,你的陣列response.COLUMNSresponse.DATA(這是一個數組的數組)。

var numCols = response.COLUMNS.length; 
for(var i = 0; i < numCols; i++){ 
    response.COLUMNS[i] 
} 

或循環嵌套數組

var numData = response.DATA.length; 
for(var i = 0; i < numData; i++){ 
    for(var j = 0; j < response.DATA[i].length; j++){ 
     response.DATA[i][j] 
    } 
} 
2

你必須在JSON輸出很多陣列。例如,你可以遍歷DATA財產是一個數組的數組:

success: function (response) { 
    $.each(response.DATA, function(index, elements) { 
     // for each element in the DATA array get the 
     // coupes number and letter which are respectively the first 
     // and second elements 
     var number = elements[0]; 
     var letter = elements[1]; 
     ... 
    }); 
} 
+0

我想測試你的解決方案,但我不能讓過去一個javascript格式問題了。即使在使用jsbeautify之後,該頁面上的腳本仍處於禁用狀態。 – user990016 2012-02-04 22:36:35

+0

@darin。我不會幫助那個人... – gdoron 2012-02-04 22:39:54

+0

你是誰?你在哪裏下車? – user990016 2012-02-04 22:43:47