2016-09-15 84 views
0

嘿所有我現在有打電話給我的AJAX的ColdFusion .cfc頁面時以下JSON返回:AJAX jQuery的返回JSON數據循環鍵和值

"[{\"USERA\": \"LiveP\", \"STATE\": \"None Given\", \"ROLES\": \"District Administrator<br/>Personnel Admin<br/>**** Coordinator\", \"ROLEASSIGNED\": \"LG AdminPersonnel System\", \"ADDRESS\": \"None Given\", \"UPDATEURL\": \"/personnel/search_ajax.cfc?func=edit=2*******\", \"TELEPHONE\": \"None Given\", \"ADDRESS2\": \"None Given\", \"ZIPCODE\": \"None Given\", \"LOCATION\": \"<a href=\\\"locations.cfm?func=view&locationID=\\\"2*******\\\">Demo New School (Primary)</a>\", \"SYSTEMID\": 87024, \"HOMETELEPHONE\": \"None Given\", \"MANAGEURL\": \"tools.cfm?userID=2*******\", \"MERGEURL\": \"/personnel/search_ajax.cfc?func=merge&userID=2*******\", \"EMAIL\": \"[email protected]\", \"SUBJECTTAUGHT\": \"None Given\", \"CITY\": \"None Given\", \"POSITION\": \"None Given\"}]" 

當我運行這段代碼下面它給了我以上JSON:

success: function(data) { 
    var sData = JSON.stringify(data);          
    console.log(sData); 
}, 

現在,如果我不使用JSON.stringify那麼我的輸出是:

[Object] 

enter image description here

我所ultimatlly希望做的是循環遍歷這個返回的JSON並獲得關鍵沒有需要知道關鍵(亦稱sData.Address,sData.Address2,sData.City等等)。

我打算把它放在這個類型的格式:

var theHTML = ""; 

$.each(data,function(key,value){ 
    theHTML += "<tr><td>" + key + "</td><td>" + value + "</td></tr>"; 
}) 

其中,只有返回:

<tr><td>0</td><td>[object Object]</td></tr> 

我敢肯定,我只是失去了一些東西很少,但我就是」 t找到那是什麼。

+0

您可以解析JSON值,然後進行迭代。檢查http://stackoverflow.com/questions/7861032/loop-and-get-key-value-pair-for-json-array-using-jquery – user2894296

+0

出於好奇,如果你只希望數組中的一個元素,爲什麼不跳過它,只是返回結構? – Leigh

+0

@Leigh,因爲我需要把它放在表格格式中。 – StealthRT

回答

6

它看起來像你的數據在一個數組中,並且你想要遍歷數組中的第一個對象。你可以試試這個。

var theHTML = ""; 

$.each(data[0],function(key,value){ 
    theHTML += "<tr><td>" + key + "</td><td>" + value + "</td></tr>"; 
}) 
+0

偉大的工作,semone!那樣做了!歡迎來到** Stackoverflow **! – StealthRT

1

Semone的解決方案將爲您提供您所需的內容,但此代碼將循環訪問嵌套對象。您可以突出顯示/設置嵌套表格的樣式,或者使用任一級別或某種東西來表明。

http://codepen.io/anon/pen/xEVQZb

JS:

var displayObjectData = function(obj) { 
    for(var key in obj) { 
    var value = obj[key]; 
    if(typeof value == "object") {  
    theHTML += "<tr><td colspan='2'><table>"; 
    displayObjectData(value); 
     theHTML += "</table></td></tr>"; 
    } 
    else {  
     theHTML += "<tr><td>" + key + "</td><td>" + value + "</td></tr>"; 
    } 
    } 
}; 
displayObjectData(data);