把 JSON 解析成对象,再重新转成字符串,是常见的格式化方式。但当数字超出 JavaScript 的安全整数范围时,重新序列化可能改变原始数值。
一个容易忽略的长 ID
const source = '{"id":9007199254740993}';
JSON.stringify(JSON.parse(source));
// 得到:{"id":9007199254740992}如果这段数字是接口里的 ID,哪怕只差 1,也已经不是同一条记录。JSON 语法有效,并不意味着所有数值都能由当前语言的数字类型精确表示。
知微格式化工具的做法
工具先用 JSON.parse 检查语法,再按原始文本里的标记整理缩进,不把解析结果重新序列化。这样能保留长数字、指数写法、字符串转义与重复键。
使用时的边界
- 每次最多处理 50 万字符,JSON 嵌套最多 100 层。
- 输入只在当前浏览器标签页处理,不发送给服务器。
- 它负责语法检查与排版,不替你判断字段内容是否符合接口约定。