导读:本期聚焦于小伙伴创作的《js如何遍历JSON对象 JSON对象遍历的4种实用方案》,敬请观看详情。在前端开发中,处理接口返回的JSON数据是常见需求,很多开发者都会遇到需要遍历JSON对象获取内部数据的情况。不同的JSON结构适用的遍历方式存在差异,选对方法能让代码更简洁高效。本文将详细介绍js遍历JSON对象的4种实用方案,覆盖普通对象、数组嵌套对象等常见场景,每种方案都会搭配可运行的代码示例,同时说明各自的适用场景和注意事项,帮助开发者快速掌握不同遍历方式的使用技巧,解决实际开发中的数据遍历问题。

在js开发中,JSON对象是最常用的数据格式之一,无论是接口返回的数据还是本地存储的配置信息,大多都以JSON结构存在。遍历JSON对象获取所需数据是开发者的必备技能,不同的遍历方式适配不同的数据结构,下面介绍4种常用的遍历方案。

js如何遍历JSON对象 JSON对象遍历的4种实用方案

方案一:for...in循环遍历普通JSON对象

for...in是js原生支持的遍历对象属性的方法,适合遍历普通的键值对JSON对象,会遍历对象自身和继承的可枚举属性,实际使用时通常需要配合hasOwnProperty过滤继承属性。

// 普通JSON对象示例
const userJson = {
  name: '张三',
  age: 25,
  city: '北京'
};

// 使用for...in遍历
for (let key in userJson) {
  // 过滤继承的属性
  if (userJson.hasOwnProperty(key)) {
    console.log(`键名:${key},键值:${userJson[key]}`);
  }
}

方案二:Object.keys()结合forEach遍历

Object.keys()会返回对象自身所有可枚举属性的键名组成的数组,之后可以结合数组的forEach方法遍历,这种方式只会遍历对象自身的属性,不需要额外过滤继承属性,使用起来更简洁。

const productJson = {
  id: 1001,
  title: '无线鼠标',
  price: 89,
  stock: 200
};

// 获取所有键名数组后遍历
Object.keys(productJson).forEach(key => {
  console.log(`属性${key}的值是:${productJson[key]}`);
});

方案三:for...of遍历JSON数组

如果JSON数据是数组结构,或者JSON对象内部嵌套了数组,可以使用for...of循环遍历数组元素,这种方式语法更简洁,支持直接获取数组的每一项元素。

// JSON数组示例
const studentList = [
  { name: '李四', score: 92 },
  { name: '王五', score: 88 },
  { name: '赵六', score: 95 }
];

// 使用for...of遍历数组
for (let student of studentList) {
  console.log(`学生姓名:${student.name},成绩:${student.score}`);
}

方案四:递归遍历嵌套JSON对象

当JSON对象存在多层嵌套结构时,普通的遍历方式无法获取深层数据,此时可以使用递归的方式,逐层遍历对象的每个属性,遇到子对象或子数组就继续递归遍历。

// 嵌套JSON对象示例
const deptJson = {
  deptName: '技术部',
  leader: '小明',
  members: [
    { name: '小红', role: '前端' },
    { name: '小刚', role: '后端' }
  ],
  subDept: {
    deptName: '测试组',
    leader: '小华'
  }
};

// 递归遍历函数
function traverseJson(obj) {
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      const value = obj[key];
      // 判断如果是对象或数组,继续递归
      if (typeof value === 'object' && value !== null) {
        console.log(`进入${key}的子结构`);
        traverseJson(value);
      } else {
        console.log(`键:${key},值:${value}`);
      }
    }
  }
}

// 调用递归函数
traverseJson(deptJson);

不同方案的选择建议

实际开发中可以根据JSON结构选择合适的遍历方式:普通单层对象优先用Object.keys结合forEach,代码更简洁;需要兼容旧环境或者要遍历继承属性时用for...in;数组结构的JSON用for...of更高效;多层嵌套的复杂结构则必须使用递归遍历。掌握这4种方案基本可以覆盖所有JSON对象遍历的场景。

jsJSON对象遍历for...infor...ofObject.keys修改时间:2026-06-09 02:51:18

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。