作者:kaenfsk · 最后复核:2026 年 10 月 12 日 · 数据在浏览器本地处理 · 内容与维护标准

📋 JSON 格式化 / 校验

格式化、压缩和校验 JSON 数据。所有处理在浏览器本地完成,不会上传你的数据。

等待输入...
等待输入...

关于 JSON 格式化

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使用人类可读的文本来表示键值对和数组结构。自 2001 年由 Douglas Crockford 推广以来,JSON 已经取代 XML 成为互联网上最主流的数据交换格式,几乎所有现代 Web API 都使用 JSON 作为数据载体。

JSON 的核心优势在于简洁和通用:它的语法只有六种数据结构(对象、数组、字符串、数字、布尔值、null),任何编程语言都能轻松解析和生成。无论是前端与后端之间的接口通信,还是配置文件、日志记录、数据存储,JSON 都是最常用的选择之一。

使用说明

  1. 输入 JSON — 将你的 JSON 数据粘贴到输入框中,支持任意复杂度的嵌套结构
  2. 格式化(美化) — 点击「格式化」按钮,工具自动缩进并对齐 JSON 内容,添加适当的换行和缩进,使数据结构层次分明、一目了然
  3. 压缩 — 点击「压缩」按钮可去除所有空格、换行和缩进,获得最精简的 JSON 字符串,适用于接口传输或存储
  4. 语法校验 — 工具会自动检测 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 属性或某些配置字段时使用转义。三者处理的是不同问题:格式化解决可读性,压缩解决体积,转义解决特殊字符与上下文冲突。使用前先明确当前数据要交给谁,避免在不该压缩的地方压缩、不该转义的地方转义。

典型使用流程

  1. 从接口、日志或配置中复制 JSON 内容
  2. 粘贴到输入框并点击格式化,先检查语法是否通过
  3. 根据错误提示定位问题字段,修正后再次校验
  4. 确认无误后复制格式化结果或压缩结果
  5. 把结果写入文件、数据库或接口测试工具

数据安全说明

本工具为纯前端实现,所有格式化、压缩和校验都在浏览器本地完成。输入内容不会上传到服务器,也不会被写入任何云端存储。因此你可以放心处理包含账号、密钥或业务机密的 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。

💡 所有处理仅在浏览器本地完成,你的数据不会上传到任何服务器,可以放心处理包含敏感信息的 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)编码,中文字符可以直接写在字符串中,无需转义。

⚠️ 注意:JSON 中键名必须用双引号包裹,字符串中不能包含未转义的控制字符,最后一个元素后面不能有逗号。
📚 相关文章
📋 JSON 入门指南:从零开始理解 JSON 数据格式 → 🔐 Base64 编码完全指南:原理与应用 → ⏰ Unix 时间戳详解:程序员必知的时间知识 →