Javascript中对json的for each操作

Javascript For each json

本问题已经有最佳答案,请猛点这里访问。

我正在通过Ajax JavaScript调用一个返回JSON的页面(ASP)。然后我将使用它转到选择值

我返回的JSON是这种类型的

1
2
3
4
5
6
7
8
9
{
 "options": {
   "1":"All locations",
   "2":"Egypt",
   "3":"El Alamein",
   "4":"Marsa matrouh",
   "5":"Sharm el sheikh"
  }
}

1
2
3
4
5
6
7
{
 "options": {
   "1":"All locations",
   "2":"Abu dhabi",
   "3":"Dubai"
  }
}

我不知道长度和包含的元素然后我会做一个循环,允许我提取值,然后插入值和标签

我在看网络,但是所示的例子总是带有字段名,要记住,我不能不知道长度。

有人能给我演示一下这个自行车JSON吗


1
2
3
4
5
var obj = {"options": {"1":"All locations","2":"Egypt","3":"El Alamein","4":"Marsa matrouh","5":"Sharm el sheikh"}}

for(var item in obj.options) {
  console.log(obj.options[item]);
}


对于迭代字典,可以使用以下方法:

1
2
3
4
var dict = obj.options;
Object.keys(dict).forEach(function(key) {
    console.log(key +': '+ dict[key]);
});

要只知道您可以简单地使用的长度:

1
Object.keys(dict).length;

我认为在这里你可以找到更多的答案:如何循环或枚举JavaScript对象?


使用for in循环

1
2
3
4
5
6
7
8
9
var obj = {"options": {"1":"All locations","2":"Egypt","3":"El Alamein","4":"Marsa matrouh","5":"Sharm el sheikh"}};

var ul = document.querySelector('ul');
for (var index in obj.options) {
  var li = document.createElement('li')
  ul.appendChild(li);
  li.innerHTML = index +":" + obj.options[index];
   
}
1
2
<ul >
</ul>


使用for循环太容易了

1
2
3
4
5
var obj = {"options": {"1":"All locations","2":"Egypt","3":"El Alamein","4":"Marsa matrouh","5":"Sharm el sheikh"}};

for(key in obj.options) {
   console.log(key, obj.options[key]);
}