作者:kaenfsk · 最后复核:2026 年 10 月 12 日 · 数据在浏览器本地处理 · 内容与维护标准
📋 JSON 格式化 / 校验
格式化、压缩和校验 JSON 数据。所有处理在浏览器本地完成,不会上传你的数据。
关于 JSON 格式化
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使用人类可读的文本来表示键值对和数组结构。自 2001 年由 Douglas Crockford 推广以来,JSON 已经取代 XML 成为互联网上最主流的数据交换格式,几乎所有现代 Web API 都使用 JSON 作为数据载体。
JSON 的核心优势在于简洁和通用:它的语法只有六种数据结构(对象、数组、字符串、数字、布尔值、null),任何编程语言都能轻松解析和生成。无论是前端与后端之间的接口通信,还是配置文件、日志记录、数据存储,JSON 都是最常用的选择之一。
使用说明
- 输入 JSON — 将你的 JSON 数据粘贴到输入框中,支持任意复杂度的嵌套结构
- 格式化(美化) — 点击「格式化」按钮,工具自动缩进并对齐 JSON 内容,添加适当的换行和缩进,使数据结构层次分明、一目了然
- 压缩 — 点击「压缩」按钮可去除所有空格、换行和缩进,获得最精简的 JSON 字符串,适用于接口传输或存储
- 语法校验 — 工具会自动检测 JSON 语法错误,精确定位到错误位置和原因
示例
输入以下内容后点击格式化:
{"name":"张三","age":25,"contact":{"email":"zhang@example.com","phone":"13800138000"},"tags":["developer","designer"]}
JSON 格式化到底帮你做了什么
JSON 本身只是一段按照规范排列的文本。接口返回、日志记录或配置文件里的 JSON 通常被压缩成一行,人眼很难看出数组和对象的层级。JSON 格式化会按结构加入缩进和换行,让每一层对象、数组、字段都清晰对齐;它不会修改数据本身,也不会改变字段顺序,只改变排版方式。
格式化后的 JSON 更容易检查字段是否正确:键名有没有拼错、数组有没有缺逗号、对象层级是否符合预期。对于长期维护的配置文件,格式化还能减少多人修改时产生的无意义差异。压缩则相反,它去掉所有空格和换行,得到体积最小的字符串,适合接口传输或存储。
格式化后应该是什么效果
例如一段用户信息 JSON:
{"name":"在线工具箱","version":"1.0","tools":["JSON","Base64","URL"]}格式化后会变成下面的样子:
{
"name": "在线工具箱",
"version": "1.0",
"tools": [
"JSON",
"Base64",
"URL"
]
}通过这种结构化的展示,你可以快速确认数据来自哪个字段、嵌套层级是否正确,也可以把格式化后的内容粘贴到代码或文档中,让协作者更容易理解。
常见校验错误与处理方法
- 键名缺少双引号 — 例如
{name: "张三"}不是合法 JSON,应写成{"name": "张三"} - 末尾多余逗号 — 最后一个元素或字段后面不能再有逗号,这是人工编辑配置时最常见的错误
- 字符串使用单引号 — JSON 字符串必须使用双引号,单引号只用于 JavaScript 对象字面量
- 存在 BOM 或隐藏字符 — 从 Windows 文本编辑器复制的内容可能带隐藏 BOM,粘贴后看起来正常但校验失败
- 类型被写成字符串 — 布尔值和数字不应加引号,例如
"true"和true含义不同
格式化、压缩与转义怎么选
调试和阅读时使用格式化;接口提交、日志输出和存储时使用压缩;把 JSON 放入 URL、HTML 属性或某些配置字段时使用转义。三者处理的是不同问题:格式化解决可读性,压缩解决体积,转义解决特殊字符与上下文冲突。使用前先明确当前数据要交给谁,避免在不该压缩的地方压缩、不该转义的地方转义。
典型使用流程
- 从接口、日志或配置中复制 JSON 内容
- 粘贴到输入框并点击格式化,先检查语法是否通过
- 根据错误提示定位问题字段,修正后再次校验
- 确认无误后复制格式化结果或压缩结果
- 把结果写入文件、数据库或接口测试工具
数据安全说明
本工具为纯前端实现,所有格式化、压缩和校验都在浏览器本地完成。输入内容不会上传到服务器,也不会被写入任何云端存储。因此你可以放心处理包含账号、密钥或业务机密的 JSON 数据;粘贴后只要关闭页面,内容就会从浏览器内存中清除。
进阶技巧
- 格式化之前先压缩一次,可以排除多余空格造成的误判
- 大 JSON 建议分段检查,先把最外层结构理清,再逐层展开子对象
- 中文内容使用 UTF-8,避免复制过程中被其他编辑器转换字符集
- 需要长期保存的接口示例,统一使用格式化后的版本,便于版本对比
真实任务演练:订单接口返回无法解析
假设浏览器控制台报出 Unexpected token '}' in JSON at position 86,输入数据末尾多了一个逗号。排查时不要先重写整个对象,而应按下面顺序缩小范围:先定位错误字符位置,再检查它前后是否有多余逗号、未转义引号或错误括号。格式化成功后再确认业务字段,避免只修语法却漏掉含义错误。
| 现象 | 常见根因 | 正确处理 |
|---|---|---|
| 末尾多逗号 | 从 JavaScript 对象或注释中复制 | 删除最后一个成员后的逗号 |
| 单引号键名 | 把 JS 对象当成 JSON | 改为双引号,不要使用注释和 undefined |
| 第一处报错位置正常 | 错误可能在更早的未转义引号或括号 | 先看前一层结构是否有未闭合字符 |
| 显示大量转义反斜杠 | JSON 被当字符串再次序列化 | 确认接口返回层级,必要时只解析一次 |
JSON、JSON5 与 NDJSON 怎么选
需要跨语言和跨系统交换数据时,优先使用标准 JSON。JSON5 允许注释、尾逗号和部分简化写法,适合配置文件,但它不是 RFC 8259 标准 JSON;NDJSON 每行放一个独立 JSON 值,适合日志、批量导入和流式处理,但不能当作一个普通 JSON 文档直接解析。选择格式前应先确认接收方工具链,而不是只看哪一种写起来方便。
新手最容易混淆的问题
JSON 和 JavaScript 对象一样吗?不完全一样。JSON 是纯文本格式,键必须用双引号,不能写函数或注释;JavaScript 对象是内存结构,规则更宽松。两者可以互相转换,但不能直接混用。
格式化后字段顺序会变吗?本工具只做排版,不会改变字段顺序,也不会删除任何数据。字段顺序由原始 JSON 决定。
为什么数组里的对象没有缩进?JSON 数组中每个元素可以是任意类型,格式化时会根据元素类型决定换行位置。只要每个对象内部层级清晰,就是正确结果。
空数组和 null 有什么不同?空数组表示一个不包含元素的列表;null 表示值不存在。二者语义不同,校验时都应视为合法 JSON。
常见应用场景
- API 调试 — 调用 RESTful API 后,返回的 JSON 数据通常是一行压缩格式,格式化后可以清晰查看数据结构
- 配置文件编辑 — 修改
package.json、tsconfig.json、.eslintrc等项目配置文件时,格式化后更易读 - 数据迁移 — 在数据库导出和导入之间检查 JSON 数据的完整性和格式正确性
- 日志分析 — 格式化 JSON 格式的应用日志,便于排查问题
常见问题
Q: JSON 和 JavaScript 对象的区别是什么?
JSON 是纯文本格式,要求键名必须用双引号包裹,不支持函数、注释或 undefined 值。而 JavaScript 对象可以有单引号、方法等。
Q: 为什么我的 JSON 校验不通过?
常见原因包括:键名没有用双引号包裹、最后一个元素后面有多余逗号、字符串用了单引号而不是双引号、JSON 内容前面有 BOM 字符。
Q: JSON 支持中文吗?
完全支持。JSON 使用 Unicode(UTF-8)编码,中文字符可以直接写在字符串中,无需转义。