当我调用myjax coldfusion .cfc页面时,我现在恢复了以下 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\": \"noaddress@noaddress.com\", \"SUBJECTTAUGHT\": \"None Given\", \"CITY\": \"None Given\", \"POSITION\": \"None Given\"}]"
当我在下面运行此代码时,它会给我上面的JSON:
success: function(data) {
var sData = JSON.stringify(data);
console.log(sData);
},
现在,如果我不使用 JSON.stringify ,那么我的输出是:
[Object]
我最终希望做的是循环使用此返回的JSON并获取键和值 ,而无需需要知道 key (又名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>
我确定我只是遗漏了一些东西,但我找不到那是什么。
答案 0 :(得分:6)
看起来您的数据在数组中,并且您希望循环遍历数组中的第一个对象。你可以试试这个。
var theHTML = "";
$.each(data[0],function(key,value){
theHTML += "<tr><td>" + key + "</td><td>" + value + "</td></tr>";
})
答案 1 :(得分: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);