json.stringify() 的第三个参数可实现json格式化:传入正整数(如2、4)控制空格缩进,传入字符串(如"\t"、"--")自定义缩进符;处理原始字符串需先parse再stringify;调试推荐console.dir()。

用 JSON.stringify() 的第三个参数就能轻松实现格式化美化输出,不需要额外库或复杂逻辑。
用数字控制空格缩进
传入一个正整数,表示每层嵌套缩进的空格数:
-
JSON.stringify(obj, null, 2)→ 每层缩进 2 个空格 -
JSON.stringify(obj, null, 4)→ 每层缩进 4 个空格
这是最常用、最推荐的方式,视觉清晰,兼容性好,适合日志、调试和接口响应预览。
用字符串自定义缩进符
第三个参数也可以是字符串,比如制表符或短横线:
-
JSON.stringify(obj, null, "\t")→ 使用 Tab 缩进 -
JSON.stringify(obj, null, "--")→ 每层前加两个短横线
注意:字符串长度超过 10 个字符时,只取前 10 个;制表符在不同编辑器中显示宽度可能不一致,建议优先用空格。
处理原始 JSON 字符串再美化
如果拿到的是未格式化的 JSON 字符串(如后端返回的紧凑字符串),需先解析再序列化:
- 先用
JSON.parse(str)转成对象 - 再用
JSON.stringify(parsedObj, null, 2)输出美化结果
示例:
const raw = '{"name":"Tom","scores":[95,87],"meta":{"valid":true}}';const obj = JSON.parse(raw);
console.log(JSON.stringify(obj, null, 2));
调试时更直观的替代方案
如果只是临时查看结构,不用生成字符串,console.dir() 更高效:
console.dir(obj, { depth: null, colors: true })- 支持点击展开、语法高亮、无限层级,比纯文本更利于排查嵌套问题
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











