Skip to content

JSON 格式化与验证工具

在浏览器中即时格式化、验证和美化 JSON。免费在线工具,支持语法验证、错误检测、压缩和一键复制,100% 隐私保护。

无追踪 浏览器中运行 免费
输出
已审核 RFC 8259 合规性和格式化正确性 — Go Tools 工程团队 · 2026年3月22日

什么是 JSON?

JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的、基于文本的数据交换格式,人类易于阅读和编写,机器也易于解析和生成。JSON 已被正式标准化为 RFC 8259 和 ECMA-404,如今已成为几乎所有编程语言、API 和 Web 服务之间数据交换的通用标准。

JSON 的创始人 Douglas Crockford 在 json.org 上写道:"JSON's design goals were for it to be minimal, portable, textual, and a subset of JavaScript."(JSON 的设计目标是最小化、可移植、基于文本,并作为 JavaScript 的子集。)正是这种刻意的简洁性,使 JSON 最终战胜了 XML,成为现代互联网的通用数据语言。

JSON 支持六种数据类型:字符串(双引号括起)、数字、布尔值(true/false)、null、数组(有序列表)和对象(键值对)(RFC 8259)。其简洁性和可读性使其成为大多数现代 Web 应用程序、REST API 和配置文件中优于 XML 的首选格式。JSON 是最受欢迎的 API 数据格式,被 86% 的开发者所使用(Postman《2023 年 API 现状报告》)。

JSON 格式化工具可以将原始或压缩的 JSON 转换为结构清晰、带缩进的格式,使数据层级一目了然。这对于调试 API 响应、检查配置文件以及理解复杂的嵌套数据结构至关重要。与 XML 不同,JSON 不支持注释、属性或命名空间——它纯粹专注于数据表示(ECMA-404)。

本工具完全在你的浏览器中运行——你的 JSON 数据绝不会离开你的设备。与基于服务器的格式化工具不同,这里没有上传、没有日志记录、也没有数据留存。可放心用于 API 密钥、生产配置和专有数据。

JSON 经常与其他开发者工具配合使用。调试 API 时,你可能需要解码 Base64 编码的 JSON 载荷(例如 JWT 令牌),或者生成 UUID 作为 JSON 数据结构中的唯一标识符。处理 JSON5 或 JSONC 配置文件?请参阅我们的 JSON5 与 JSONC 格式化指南,了解语法差异、工具支持和最佳实践。想深入了解 YAML 的 Norway 问题以及 JSON ↔ YAML 转换技巧?阅读我们的YAML Norway 问题与 JSON-YAML 差异指南,或直接使用 JSON 转 YAMLYAML 转 JSON 工具。

// Format (pretty-print) JSON with 2-space indentation
const raw = '{"name":"Alice","age":30,"active":true}';
const parsed = JSON.parse(raw);        // parse string → object
const formatted = JSON.stringify(parsed, null, 2);
console.log(formatted);
// → {
//     "name": "Alice",
//     "age": 30,
//     "active": true
//   }

// Minify JSON (strip all whitespace)
const minified = JSON.stringify(parsed);
console.log(minified);
// → '{"name":"Alice","age":30,"active":true}'

核心功能

即时格式化

粘贴任意 JSON,即可在毫秒内获得完美缩进的输出。支持 2 空格和 4 空格缩进。

实时验证

输入时自动检测语法错误,提供清晰的错误信息,精确指出错误所在的行和位置。

一键压缩

将格式化的 JSON 压缩为单行,减少文件大小,适用于生产环境的 API 和配置文件。

100% 浏览器端处理

所有处理均在浏览器本地完成,数据绝不离开你的设备 — 无需上传服务器,无任何追踪。

支持大文件

高效处理最大 10MB 的 JSON 文件,性能流畅,不会出现文件大小警告或崩溃。

复制与下载

即时导出结果 — 一键复制到剪贴板或下载为 .json 文件。

示例

API 响应

{"status":200,"data":{"user":{"id":"usr_2x7kP9","name":"Alice Chen","email":"alice@example.com","roles":["admin","editor"],"lastLogin":"2026-03-12T08:30:00Z"},"meta":{"requestId":"req_abc123","timestamp":1741776600}}}

格式化典型的 REST API 响应,包含嵌套的用户数据和元信息

包配置文件

{"name":"my-app","version":"2.1.0","private":true,"scripts":{"dev":"next dev","build":"next build","start":"next start","lint":"eslint ."},"dependencies":{"react":"^18.2.0","next":"14.1.0"},"devDependencies":{"typescript":"^5.3.0","eslint":"^8.56.0"}}

美化压缩的 package.json 配置文件

数据集合

[{"id":1,"product":"Laptop Pro","price":1299.99,"inStock":true,"tags":["electronics","computers"]},{"id":2,"product":"Wireless Mouse","price":29.99,"inStock":false,"tags":["electronics","accessories"]},{"id":3,"product":"USB-C Hub","price":49.99,"inStock":true,"tags":["electronics","accessories"]}]

格式化来自数据库或电商 API 的产品对象数组

嵌套配置

{"database":{"host":"localhost","port":5432,"name":"mydb","pool":{"min":2,"max":10}},"cache":{"enabled":true,"ttl":3600,"provider":"redis"},"logging":{"level":"info","format":"json","outputs":["stdout","file"]}}

缩进深层嵌套的应用配置,包含数据库、缓存和日志设置

使用方法

  1. 1

    粘贴 JSON 数据

    在上方输入框中输入或粘贴原始 JSON 数据。也可以点击「加载示例」加载示例数据快速体验。

  2. 2

    格式化或压缩

    点击「格式化 JSON」将 JSON 美化为带缩进的可读格式,或点击「压缩 JSON」压缩为单行紧凑格式。

  3. 3

    复制结果

    处理后的结果会显示在输出区域。点击「复制」即可一键复制到剪贴板。

常见 JSON 错误

尾随逗号

JSON 不允许在数组或对象的最后一个元素后面添加逗号。这是最常见的错误之一,尤其是从 JavaScript 代码复制时。

✗ 错误
{"name": "Alice", "age": 30,}
✓ 正确
{"name": "Alice", "age": 30}

单引号

JSON 要求所有字符串和键名使用双引号。单引号在 JavaScript 中有效,但在 JSON 中无效。

✗ 错误
{'name': 'Alice'}
✓ 正确
{"name": "Alice"}

未加引号的键名

JSON 中所有属性键必须用双引号括起来。未加引号的键名在 JavaScript 对象中有效,但在 JSON 中无效。

✗ 错误
{name: "Alice"}
✓ 正确
{"name": "Alice"}

注释

标准 JSON 不支持任何形式的注释。如果需要注释,请考虑使用 JSONC(带注释的 JSON)或 YAML。

✗ 错误
{"name": "Alice" // user name}
✓ 正确
{"name": "Alice"}

缺少括号

每个左方括号或左花括号都必须有对应的右方括号或右花括号。括号不匹配会导致 'Unexpected end of JSON input' 错误。

✗ 错误
{"users": [{"name": "Alice"}
✓ 正确
{"users": [{"name": "Alice"}]}

意外的标记

当解析器遇到不应出现在该位置的字符时会发生此错误。常见原因包括元素之间缺少逗号,或 JSON 结束后存在多余字符。

✗ 错误
{"name": "Alice" "age": 30}
✓ 正确
{"name": "Alice", "age": 30}

常见使用场景

API 响应调试
将压缩的 API 响应格式化为可读 JSON,方便快速调试和检查数据结构。
配置文件处理
验证和美化 package.json、tsconfig.json、.eslintrc 等配置文件。
数据检查
浏览和理解从数据库、日志或第三方服务导出的 JSON 数据。
代码审查
格式化 JSON 代码片段,让代码审查中的差异对比更加清晰。
技术文档
为技术文档和教程生成格式整齐的 JSON 示例。
数据迁移
在将数据导入新系统之前,验证 JSON 的结构和语法正确性。

技术细节

符合 RFC 8259 标准
完整支持标准 JSON 规范,包括 Unicode 和转义字符。
浏览器端处理
所有格式化操作均在浏览器本地运行,使用原生 JSON.parse() 和 JSON.stringify() 方法。
文件大小支持
支持最大 10MB 的 JSON 文件,可配置缩进格式(2 或 4 个空格)。

最佳实践

使用前先验证
在生产环境中使用 JSON 数据前,始终先验证以尽早发现语法错误。
保持一致的缩进
建议使用 2 空格缩进,兼顾可读性和版本控制中的文件大小。
生产环境使用压缩格式
在 API 响应和配置文件中使用压缩 JSON,减少带宽占用和加载时间。

常见问题

如何在线格式化 JSON?
将原始或压缩的 JSON 粘贴到上方输入框中,然后点击「格式化 JSON」。工具会立即解析数据、验证语法,并以 2 空格缩进显示格式化后的版本。然后你可以一键将结果复制到剪贴板。所有处理均在浏览器本地完成——不会向任何服务器发送数据。
如何验证 JSON 是否有效?
将 JSON 粘贴到输入框中并点击「格式化 JSON」。如果 JSON 包含语法错误,工具会显示详细的错误信息,说明出了什么问题以及错误位置。如果 JSON 有效,则会格式化后显示在输出区域。本工具按照 RFC 8259(当前 JSON 标准)进行验证。
如何压缩 JSON?
将 JSON 粘贴到输入框中并点击「压缩 JSON」。工具会移除所有不必要的空格、换行符和缩进,生成最紧凑的表示形式。压缩后的 JSON 非常适合用于 API 响应、生产环境的配置文件,以及任何需要减小文件体积或节省带宽的场景。
使用这个工具时我的 JSON 数据安全吗?
完全安全。所有处理均在浏览器本地使用 JavaScript 原生的 JSON.parse() 和 JSON.stringify() 完成——数据绝不会离开你的设备。没有服务器上传,没有 Cookie,不会对你的输入进行任何分析追踪,也没有任何形式的数据存储。因此可以安全地用于处理 API 密钥、凭证和专有数据。
如何修复 JSON 中的 "Unexpected token" 错误?
"Unexpected token" 错误意味着 JSON 解析器在该位置发现了一个不应出现的字符。最常见的原因是:元素之间缺少逗号({"name": "Alice" "age": 30})、最后一个元素后有尾随逗号({"name": "Alice",}),或者 JSON 结束后存在多余字符。将 JSON 粘贴到本工具中即可查看确切的错误位置,然后检查该位置周围的字符。
为什么我的 JSON 有「尾随逗号」错误?
JSON 不允许在对象或数组的最后一个元素后面添加逗号。这是最常见的错误之一,因为 JavaScript 和许多其他语言允许尾随逗号。例如,{"name": "Alice", "age": 30,} 是无效的 JSON——删除 30 后面的逗号即可修复。如果你经常从 JavaScript 代码中复制数据,请在用作 JSON 之前始终检查尾随逗号。
JSON 中可以使用单引号吗?
不可以。JSON 要求所有字符串和属性键使用双引号。单引号在 JavaScript 和 Python 中有效,但不属于 JSON 规范(RFC 8259)。例如,{'name': 'Alice'} 是无效的——必须写成 {"name": "Alice"}。如果你的数据使用了单引号,本工具会报告语法错误并显示需要修复的确切位置。
JSON 中可以添加注释吗?
不可以,标准 JSON 不支持任何形式的注释——不支持 //、/* */ 或 # 语法。这是为了保持 JSON 简洁和可解析而做出的设计决定。如果你需要在配置文件中使用注释,可以考虑 JSONC(带注释的 JSON,VS Code 和 TypeScript 使用)、JSON5 或 YAML。要将带注释的文件用作标准 JSON,需要先去除注释再进行解析。
为什么我的 JSON 无法正确解析?
JSON 解析失败最常见的原因是:(1) 最后一个元素后有尾随逗号,(2) 使用单引号而非双引号,(3) 属性键未加引号,(4) 数据中包含注释,(5) 方括号或花括号缺失或多余,(6) 字符串内有未转义的特殊字符(如反斜杠或换行符)。将 JSON 粘贴到本工具中——它会精确定位错误类型和位置,帮助你快速修复。
JSON 和 YAML 有什么区别?
JSON 和 YAML 都是数据序列化格式,但设计理念不同。JSON 使用花括号、方括号和双引号,语法严格——非常适合机器解析和 API。YAML 使用缩进和最少的标点符号——更便于人类阅读,常用于配置文件(Docker Compose、Kubernetes、GitHub Actions)。JSON 是 YAML 的子集,因此任何有效的 JSON 也是有效的 YAML,但反过来不成立。
什么是 JSON Schema?
JSON Schema 是一个独立的标准(不是 JSON 本身的一部分),用于定义 JSON 数据的预期结构、类型和约束。例如,你可以指定某个字段必须是字符串、某个数字必须在 1 到 100 之间、或某个数组必须包含至少一个元素。JSON Schema 广泛用于 API 请求/响应验证、表单生成和文档编写。本工具验证的是 JSON 语法而非 JSON Schema——如需 Schema 验证,请使用专门的 JSON Schema 验证工具。
JSON 和 JSON5 有什么区别?
JSON5 是 JSON 的扩展,添加了开发者经常需要的功能:单引号和双引号、尾随逗号、注释(// 和 /* */)、不加引号的键、多行字符串和十六进制数字。JSON5 常用于需要人工编辑的配置文件。标准 JSON 解析器无法读取 JSON5——需要专用的 JSON5 解析器。本工具仅支持标准 JSON(RFC 8259)。
JSON 文件的最大大小是多少?
JSON 规范本身没有文件大小限制。实际限制取决于解析器和环境:浏览器通常可以处理 500 MB 至 1 GB 的 JSON,超过后可能会遇到内存问题;服务端解析器(Node.js、Python、Java)可以通过流式解析器处理更大的文件。本在线工具可以高效处理约 10 MB 的 JSON。对于超大 JSON 文件,建议使用 jq 等命令行工具或流式解析器。
我有一个完全压缩的大型 API 响应——如何最快地让它可读以便调试?
将压缩后的 JSON 粘贴到本工具中,然后点击「格式化 JSON」。它会即时解析数据并以 2 空格缩进美化输出,使嵌套的对象和数组立即清晰可见。对于非常大的响应(5-10 MB),这个基于浏览器的工具通常比 VS Code 或命令行 jq 更快,因为它使用浏览器原生的 JSON.parse() 且没有任何启动开销。对于编程式格式化,可以在 JavaScript 中使用 JSON.stringify(data, null, 2),或在命令行中使用 python -m json.tool。
从 JavaScript 代码复制数据时,我总是遇到 JSON 解析错误——我哪里做错了?
最常见的原因是 JavaScript 对象字面量不是有效的 JSON。有三个关键差异容易让人踩坑:(1) JavaScript 允许单引号('name'),但 JSON 要求双引号("name");(2) JavaScript 允许尾随逗号({"a": 1,}),但 JSON 不允许;(3) JavaScript 允许未加引号的键({name: "Alice"}),但 JSON 要求键必须加引号({"name": "Alice"})。此外,JavaScript 注释(// 或 /* */)在 JSON 中也是无效的。将数据粘贴到本工具中——它会精确定位错误类型和位置,帮助你快速修复。

Base64 解码与编码工具

编码和格式化

免费在线 Base64 解码编码工具。实时转换,支持中文和 Emoji,100% 浏览器端运行,数据不离开设备,无需注册。

JSON 转 YAML 转换器

编码和格式化

粘贴 JSON 即时获得 YAML,浏览器端实时转换。支持 Kubernetes、Docker Compose 和 Terraform,提供 2/4 空格缩进、Norway 安全自动引号,100% 隐私保护,数据不离开设备。

URL 编码解码在线工具 — 内置 URL 结构解析

编码和格式化

粘贴 URL 即时编码或解码,实时显示结果。内置 URL 解析器将协议、域名、路径、查询参数拆解为可编辑字段。支持 encodeURI 和 encodeURIComponent 双模式切换,检测双重编码问题。纯浏览器端运行,数据不离开设备。

YAML 转 JSON 转换器

编码和格式化

粘贴 YAML 即时获得 JSON,浏览器端实时转换。支持 K8s 清单、OpenAPI 规范、Helm values 和 Ansible playbook,完整展开锚点/别名,100% 隐私保护,数据不离开设备。

进制转换器 — 二进制、十六进制、十进制、八进制互转

转换工具

在线免费进制转换工具,支持二进制、八进制、十进制、十六进制及 2-36 任意进制互转。无需注册,数据不离开浏览器,即时获取结果。

在线压缩 JPEG、PNG、WebP 图片 — 免费批量处理

转换工具

免费在线压缩 JPEG、PNG、WebP 图片,体积缩小高达 80%。浏览器本地处理、图片不上传服务器。支持批量压缩 20 张、质量调节、前后对比预览。无需注册。