json.stringify 的第三个参数 space 控制缩进格式化:传入数字(如2)表示空格数,字符串(如"\t")作为缩进符;缩进不影响原对象和后续解析,配合 replacer 可选择性序列化并美化输出。

JSON.stringify 本身支持缩进格式化,关键在于第三个参数 —— space。
用数字指定缩进空格数
传入一个正整数(如 2、4),表示每个层级缩进的空格数量:
const obj = { name: "Alice", hobbies: ["reading", "coding"], address: { city: "Beijing", zip: "100000" } };
console.log(JSON.stringify(obj, null, 2));
输出会按 2 个空格缩进,结构清晰易读。
用字符串作为缩进符
传入字符串(如 "\t" 或 "--"),每层就用该字符串缩进:
console.log(JSON.stringify(obj, null, "\t")); // 用制表符缩进 console.log(JSON.stringify(obj, null, "--")); // 用两个短横线缩进
注意:字符串长度不限,但通常用空格或 \t 更符合习惯。
缩进只影响输出,不影响原始数据
格式化是纯字符串操作,不会修改原对象,也不影响后续解析:
- 缩进后的字符串仍可被
JSON.parse()正确还原 - 如果传入
null或省略space,输出为紧凑单行 - 若
space为0、false或"",等效于无缩进(但换行符仍保留)
配合 replacer 参数做选择性序列化
第二个参数 replacer 可过滤或转换字段,再配合缩进更灵活:
const filtered = JSON.stringify(obj, ["name", "address"], 2); // 只保留 name 和 address 字段,并缩进显示
也可传入函数实现动态处理,比如隐藏敏感字段后再美化输出。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











