JavaScript如何循环遍历JSON中的键和值?

79

我正在尝试遍历以下JSON:

{
"VERSION" : "2006-10-27.a",
"JOBNAME" : "EXEC_",
"JOBHOST" : "Test",
"LSFQUEUE" : "45",
"LSFLIMIT" : "2006-10-27",
"NEWUSER" : "3",
"NEWGROUP" : "2",
"NEWMODUS" : "640"
}

这里的“key”是动态的。我希望同时获得“key =?”和“value =?”。

2个回答

153
使用 Object.keys() 获取键数组,使用 forEach() 进行迭代。

var data = {
  "VERSION": "2006-10-27.a",
  "JOBNAME": "EXEC_",
  "JOBHOST": "Test",
  "LSFQUEUE": "45",
  "LSFLIMIT": "2006-10-27",
  "NEWUSER": "3",
  "NEWGROUP": "2",
  "NEWMODUS": "640"
};

Object.keys(data).forEach(function(key) {
  console.log('Key : ' + key + ', Value : ' + data[key])
})


2
非常好的答案!!! 有没有一种使用映射来实现每个元素都有键和值(内置的东西)的方法? 我通常会创建一个帮助函数来完成这个任务,但我正在寻找一些可以使用ES6、7的东西。 - Pini Cheyni

46
你可以使用 Object.keys 来实现。

const yourObject = {
  "VERSION": "2006-10-27.a",
  "JOBNAME": "EXEC_",
  "JOBHOST": "Test",
  "LSFQUEUE": "45",
  "LSFLIMIT": "2006-10-27",
  "NEWUSER": "3",
  "NEWGROUP": "2",
  "NEWMODUS": "640"
}
const keys = Object.keys(yourObject);
for (let i = 0; i < keys.length; i++) {
  const key = keys[i];
  console.log(key, yourObject[key]);
}

Object.entries

const yourObject = {
  "VERSION": "2006-10-27.a",
  "JOBNAME": "EXEC_",
  "JOBHOST": "Test",
  "LSFQUEUE": "45",
  "LSFLIMIT": "2006-10-27",
  "NEWUSER": "3",
  "NEWGROUP": "2",
  "NEWMODUS": "640"
}
const entries = Object.entries(yourObject);
for (let [key,value] of entries) {
  console.log(key, value);
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接