尝试 JSON 格式化器
美化、验证和压缩 JSON。基于浏览器,无需上传。
为什么 JSON 格式化很重要
JSON(JavaScript 对象表示法)已成为数据交换的通用语言。API 返回它,配置文件使用它,数据库存储它。但来自 API 响应的原始 JSON 通常看起来像这样:
{"users":[{"id":1,"name":"Alice","roles":["admin","editor"],"settings":{"theme":"dark","notifications":true}},{"id":2,"name":"Bob","roles":["viewer"],"settings":{"theme":"light","notifications":false}}]}
直接阅读简直不可能。现在对比一下格式化后的版本:
{
"users": [
{
"id": 1,
"name": "Alice",
"roles": ["admin", "editor"],
"settings": {
"theme": "dark",
"notifications": true
}
}
]
}
数据完全相同。但第二个版本让你能立即看到结构,发现缺失字段,并理解层级关系。格式化是调试的超能力。
5 种常见 JSON 错误
每个开发者都曾花时间寻找 JSON 语法错误。以下是常见的几种情况:
1 末尾逗号
JavaScript 允许数组和对象末尾有逗号,但 JSON 不允许。
// INVALID JSON
{
"name": "Alice",
"age": 30, ← trailing comma
}
2 单引号
JSON 要求使用双引号,单引号是语法错误。
// INVALID: {'name': 'Alice'}
// VALID: {"name": "Alice"}
3 未加引号的键
在 JavaScript 对象中,键不需要引号。在 JSON 中,键是必须加引号的。
// INVALID: {name: "Alice"}
// VALID: {"name": "Alice"}
4 注释
JSON 不支持注释语法。没有 //,也没有 /* */。如果你需要注释,可以考虑使用 JSON5 或 JSONC,但标准 JSON 解析器会拒绝它们。
5 缺少括号或大括号
深度嵌套的 JSON 容易导致你忘记打开和关闭括号。格式化工具能立刻显示不匹配的括号对。
专业技巧:如果 JSON.parse() 出现"位置847意外的令牌"错误,请将JSON粘贴到格式化工具中。错误信息会直接指向问题所在。
格式化与压缩:何时使用
格式化(美化)
- 调试 —— 检查 API 响应,查找缺失或错误的字段
- 代码审查 —— 在拉取请求中让配置文件更易阅读
- 文档编写 —— 在文档中包含可读的 JSON 示例
- 学习 —— 理解陌生数据的结构
压缩
- 生产环境 API —— 通过移除空白字符节省带宽
- 配置文件 —— 减小文件体积以用于部署
- 存储 —— 数据库和缓存中的数据包更小
- 网络 —— 传输速度更快,尤其在移动网络环境下
例如从 50 KB 减到 20 KB,相当于减少 60%。实际节省取决于输入中可移除的空白数量,这不是实测保证。
2 空格 vs. 4 空格
这是关于 JSON 的 "制表符 vs. 空格" 争议。实际差异如下:
- 2 空格 —— 更紧凑,大多数 JavaScript/Node.js 项目首选。npm、ESLint 和 Prettier 默认使用 2 空格
- 4 空格 —— 对于深度嵌套结构更易阅读。常见于 Python(PEP 8)和 Java 项目
我们的 JSON 格式化工具 可以立即在两者之间切换。选择项目所使用的格式即可——一致性比具体数值更重要
隐私:为什么浏览器端处理至关重要
JSON 数据中常包含敏感信息:
- API 密钥和令牌
- 用户数据(邮箱、姓名、地址)
- 配置文件中的数据库凭据
- 内部系统架构细节
把敏感数据粘贴到格式化工具前,请核对处理位置以及谁能访问设备。条件允许时,使用脱敏示例。
JSON 格式化工具通过 JSON.parse() 和 JSON.stringify() 在本地处理输入,不上传内容进行格式化;资源请求和站点统计是不同环节。解析可能合并重复键,或对超出 JavaScript 安全精度的数字舍入,因此它不是保留原字节或任意精度的编辑器。
实际工作流程
- API 调试 —— 从开发者工具复制响应体 —— 粘贴 —— 格式化 —— 立即查看结构
- 语法验证 —— 可粘贴
package.json之类的标准 JSON。含注释或尾逗号的tsconfig.json属于 JSONC,本标准 JSON 解析器不接受。 - 数据清理 — 加载大型JSON文件 — 压缩 — 生产环境中节省带宽
- 文档 — 为API文档中的JSON示例提供一致的缩进格式