AJAX jquery返回了json数据循环键和值

时间:2016-09-15 15:27:06

标签: javascript jquery json ajax coldfusion

当我调用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]

enter image description here

我最终希望做的是循环使用此返回的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>

我确定我只是遗漏了一些东西,但我找不到那是什么。

2 个答案:

答案 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);