如何在javascript中循环JSON关联数组?

ssi*_*sin 12 javascript jquery json loops associative-array

我从服务器获得JSON响应,我必须在javascript中循环遍历数组并获取值.但我似乎无法循环.

数组的JSON响应如下所示:

{
   "1": "Schools",
   "20": "Profiles",
   "31": "Statistics",
   "44": "Messages",
   "50": "Contacts"
}
Run Code Online (Sandbox Code Playgroud)

我只想循环遍历它以获取ID和Name并在页面上填充一些值.

我试过了:

$.each(response, function(key, value) {
    alert(key + ' ' + value);
});

// and 

for (var key in response) {
    alert(key + ' ' + response[key]);
}
Run Code Online (Sandbox Code Playgroud)

但是没有给出正确的价值观.

在此先感谢您的帮助.

回复:嗨,我在第二个循环中得到的响应是:

0 {
1 "
2 1
3 "
4 :
5 "
6 S
Run Code Online (Sandbox Code Playgroud)

等等

这意味着它将整个响应作为字符串进行处理,并将其作为键/值进行拆分.

谢谢

Jua*_*des 19

您的问题是您没有解析JSON字符串.因此,您的foreach将遍历JSON字符串中的字符.

// If you are using jQuery.ajax, you can just set dataType to 'json' 
// and the following line will be done for you
var obj  = jQuery.parseJSON( response );
// Now the two will work
$.each(obj, function(key, value) {
    alert(key + ' ' + value);
});


for (var key in obj) {
    alert(key + ' ' + response[key]);
}
Run Code Online (Sandbox Code Playgroud)