2016-09-15 85 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);