JSON.stringify(obj, null, 2)可实现2空格缩进格式化,传入4或"\t"可分别设置4空格或制表符缩进;需注意replacer设为null、避免函数/undefined/Symbol/循环引用,并可用console.dir替代调试。

用 JSON.stringify() 的第三个参数控制缩进即可,最简单直接的方法。
使用空格缩进(推荐)
第三个参数传入一个数字,表示每个层级缩进的空格数:
-
JSON.stringify(obj, null, 2)→ 每层缩进 2 个空格 -
JSON.stringify(obj, null, 4)→ 每层缩进 4 个空格
例如:
const obj = { name: "Alice", age: 30, hobbies: ["reading", "coding"] };console.log(JSON.stringify(obj, null, 2));
输出效果清晰易读:
立即学习“Java免费学习笔记(深入)”;
{"name": "Alice",
"age": 30,
"hobbies": [
"reading",
"coding"
]
}
使用制表符缩进
第三个参数也可传入字符串,比如 "\t",实现 tab 缩进:
-
JSON.stringify(obj, null, "\t")→ 每层用一个制表符缩进 - 适合编辑器对齐习惯,但注意不同环境 tab 显示宽度可能不一致
避免常见坑
注意以下几点防止格式化失败:
- 第二个参数(replacer)通常传
null,除非需要过滤或修改字段 - 对象含函数、undefined、Symbol 或循环引用时,
JSON.stringify会跳过或报错,需提前处理 - 浏览器控制台里直接打印对象会自动美化,但转成字符串再输出时必须手动格式化
临时调试可结合 console.dir
如果只是开发调试看结构,console.dir(obj, { depth: null, colors: true }) 比格式化字符串更直观,支持展开、高亮和无限层级。


















