JSON格式化与验证工具完整指南|美化与校验
在浏览器中即时格式化、验证和压缩JSON。支持Schema验证、Schema生成、树形查看器,无需登录,完全免费。
什么是JSON Formatter?
JSON Formatter是一款基于浏览器的工具,能在几秒钟内将原始或格式错误的JSON文本转换为整洁、缩进合理、易于阅读的输出。开发者经常遇到难以阅读的JSON:被压缩成单行的API响应、丢失空白字符的配置片段、手动编辑时引入细微语法错误的文件。这个工具同时解决三个问题:以可配置的缩进进行格式化,验证语法,并使用jsonrepair库自动修复常见错误。
与服务器端工具不同,JSON Formatter完全在浏览器中运行。您的数据永远不会离开您的机器。无需账号,无速率限制,完全免费。
主要功能
- 使用自定义缩进(2或4个空格)格式化 — 点击"格式化"前,在操作栏下拉菜单中选择首选缩进大小。与预设保存功能结合使用时,选择可在会话间持久保存。
- 带错误提示的JSON语法验证 — 工具在尝试自动修复后执行
JSON.parse,如果输入无法解析,则在输出面板中显示准确的错误信息,并附有可访问性role="alert"属性。 - 自动修复格式错误的JSON —
jsonrepair库在解析前修复单引号字符串、末尾逗号、无引号键及其他常见偏差。如果应用了修复,会显示明显的提示通知。 - 压缩JSON(移除空白) — 生成移除所有格式空白的单行输出,适用于将JSON嵌入配置文件或减小载荷大小。
- 将格式化输出复制到剪贴板 — 使用Clipboard API一键复制,并为旧版浏览器提供降级方案。
- 下载为.json文件 — 以
application/jsonMIME类型将输出保存为formatted.json。 - Schema验证器标签页 — 粘贴JSON数据和JSON Schema draft-07文档;工具会报告每个违规项及其精确路径(如
root.user.email)。 - Schema生成器标签页 — 粘贴任意JSON对象;工具会推断包含检测到的格式(email、date、UUID、URI)的JSON Schema draft-07文档。
- 树形查看器标签页 — 将解析后的JSON呈现为带颜色编码类型、搜索高亮、展开/折叠全部功能以及一键路径复制的交互式可折叠树。
如何使用JSON Formatter
第一步:粘贴您的JSON
打开"格式化/压缩"标签页(默认视图)。在左侧的输入面板中粘贴您的JSON。文本区域接受任意大小的输入,可通过拖动底部边缘垂直调整大小。如果您正在加载同事分享的链接,工具会自动从URL读取输入并显示提示通知。
第二步:选择缩进
在面板下方的操作栏中,打开缩进下拉菜单。选择2个空格(默认)或4个空格。这控制输出中每个嵌套层级使用的空格数。4个空格的缩进在Python项目和某些代码风格指南中很常见;2个空格是JavaScript和Node.js生态系统的标准。
第三步:点击格式化
点击格式化按钮,或按Cmd+Enter(Mac)/ Ctrl+Enter(Windows/Linux)。格式化后的JSON出现在右侧只读输出面板中。如果输入包含可修复的问题——如末尾逗号或无引号键——提示通知会显示"JSON formatted and repaired"以确认已应用修复。如果JSON无法修复,输出面板下方会出现带具体解析错误的错误信息。
输入示例(压缩的API响应):
{"user":{"id":4821,"name":"Maria Santos","email":"maria@example.com","roles":["admin","editor"],"active":true,"lastLogin":null}}
2个空格缩进的输出:
{
"user": {
"id": 4821,
"name": "Maria Santos",
"email": "maria@example.com",
"roles": [
"admin",
"editor"
],
"active": true,
"lastLogin": null
}
}
第四步:压缩(可选)
要将JSON还原为单行,点击压缩或按Cmd+Shift+M / Ctrl+Shift+M。当您需要将格式化的JSON嵌入环境变量或配置字符串时非常有用。
第五步:复制或下载输出
点击复制将输出放入剪贴板。点击下载将formatted.json保存到下载文件夹。复制按钮在有输出之前保持禁用状态,防止意外的空剪贴板操作。
使用Schema验证器
切换到Schema验证器标签页。在左侧面板粘贴您的JSON数据,在右侧面板粘贴JSON Schema文档,然后点击验证。结果显示在下方:有效数据显示绿色对勾,违规项显示红色列表。每个违规项显示其点表示法路径(如root.addresses[0].postalCode)以及失败原因的清晰描述(如"String does not match pattern: ^\\d{5}$")。
使用Schema生成器
切换到Schema生成器标签页。粘贴示例JSON对象并点击生成Schema。工具在几秒内生成从示例推断出的JSON Schema draft-07文档,包含看起来像email、日期(YYYY-MM-DD)、ISO日期时间、UUID和URI的字符串的格式提示。
使用树形查看器
切换到树形查看器标签页。粘贴JSON,树形结构在500毫秒防抖后自动构建(无需按任何按钮)。点击任意对象或数组节点来展开或折叠它。使用搜索框高亮显示键或值与您的搜索词匹配的节点。点击展开全部一次性打开整个结构,或将鼠标悬停在任意节点上显示复制路径按钮,该按钮可复制该字段的点表示法路径。
实际应用示例
调试API响应
REST API返回压缩的用户配置以供排查问题:
{"profile":{"id":"a3f8-bc21","created":"2025-11-03","tier":"pro","quota":{"used":14200,"limit":50000},"features":["export","api","webhooks"]}}
粘贴后,以2个空格缩进点击格式化。输出立即显示嵌套层次,清楚说明quota是有两个字段的嵌套对象,features是包含三个字符串的数组。复制结果并粘贴到您的错误报告中。
根据Schema验证配置文件
您的应用程序需要包含1到65535之间的必填port整数和必填host字符串的配置。在Schema验证器的左侧面板粘贴配置JSON,在右侧粘贴如下Schema:
{
"type": "object",
"required": ["host", "port"],
"properties": {
"host": { "type": "string" },
"port": { "type": "integer", "minimum": 1, "maximum": 65535 }
}
}
如果port是"8080"(字符串而非整数),验证器会报告:root.port — Expected integer, got string。
为新API合约生成Schema
您有一个新第三方API的示例响应,需要快速为其编写JSON Schema。在Schema生成器标签页粘贴示例并点击生成Schema。工具在几秒内生成draft-07 Schema,您可以通过添加minLength、pattern或enum值等约束条件手动完善。
使用技巧与最佳实践
使用键盘快捷键。 Cmd+Enter格式化,Cmd+Shift+M压缩,无需触碰鼠标。在YAML Formatter中,JSON转换的对应快捷键是Cmd+Shift+J,但在本工具中Cmd+Shift+M始终表示压缩。
检查修复通知。 如果成功提示显示"formatted and repaired"而非"formatted successfully",请检查您的原始来源。修复可能已纠正配置文件中应在源头修复的真实错误。
树形查看器自动构建。 无需点击"构建树"——停止输入后500毫秒树形结构自动渲染。这有助于在编辑输入时快速探索未知的数据结构。
复制路径用于JavaScript访问。 在树形查看器中,将鼠标悬停在任意节点上,点击出现的复制图标。复制的路径(如root.users[2].address.city)就是您在JavaScript中JSON.parse()后访问该值所需的精确点括号表示法。
Schema生成器将所有现有键标记为必填。 生成Schema后,检查required数组并删除数据模型中实际为可选的字段。
常见问题与故障排除
粘贴后出现"Invalid JSON syntax"错误 — 输入无法自动修复。常见原因是复制时双重转义的引号(\\"而非\"),或从终端粘贴的二进制字符。尝试在源应用程序中选择JSON并重新复制,或检查是否有不可见字符。
点击格式化后输出为空 — 输入字段为空或只含空白字符。输入为空时格式化按钮处于禁用状态,但如果不知何故触发了,输出面板下方会出现错误信息"Please enter JSON to format"。
Schema验证器显示"Invalid JSON data" — Schema验证器左侧面板中的文本不是有效的JSON。与格式化标签页不同,Schema验证器不应用自动修复。先粘贴到格式化标签页,复制修正后的输出,再返回Schema验证器。
树形查看器显示"Invalid JSON" — 树形查看器使用JSON.parse解析,不进行修复。如果您的JSON有轻微问题,先在格式化标签页格式化获得干净副本,再粘贴到树形查看器中。
下载每次都生成名为formatted.json的文件 — 这是设计行为。下载后重命名文件即可。
隐私与安全
JSON Formatter使用JavaScript在您的浏览器中处理所有内容。任何输入——包括敏感API密钥、令牌、密码或JSON中嵌入的个人数据——都不会传输到任何服务器。页面加载后,工具完全离线运行。格式化逻辑本身没有任何分析跟踪钩子。您可以安全地将生产环境密钥、数据库凭证或个人身份信息粘贴到此工具中,数据不会离开您的机器。
常见问答
JSON Formatter是免费的吗? 是的,JSON Formatter完全免费,无使用限制。格式化、压缩、Schema验证器、Schema生成器和树形查看器标签页均免费提供。Glyph Widgets支持者高级功能(如保存的预设、会话历史和工具备注)面向支持者开放,但核心格式化功能无需任何条件。
可以离线使用吗? 可以。页面在浏览器中加载后,所有格式化和验证操作均在JavaScript中本地运行。您可以断开互联网连接,继续使用工具而不损失任何功能。
在这里粘贴数据安全吗? 安全。所有处理均在您的浏览器中进行。输入文本永远不会发送到服务器、被记录或存储在浏览器会话之外的任何地方。您可以安全地格式化包含API密钥、密码或个人数据的JSON。
自动修复处理哪些JSON格式? 工具使用jsonrepair库,处理单引号字符串、对象和数组中的末尾逗号、无引号属性键、注释(//和/ /)、缺少的闭合括号以及JSON规范中的其他几种常见偏差。
Schema验证器支持哪些约束? 验证器支持type、enum、required、properties、additionalProperties、minProperties、maxProperties、minLength、maxLength、pattern、format(email、uri、date、date-time、ipv4、ipv6、uuid)、minimum、maximum、exclusiveMinimum、exclusiveMaximum、multipleOf、minItems、maxItems、uniqueItems和items。
Schema生成器自动检测哪些格式? 生成器检测email地址、ISO日期(YYYY-MM-DD)、ISO日期时间、UUID和URI。它还区分数值的integer和number类型。
可以验证数组而非对象吗? 可以。Schema验证器和Schema生成器均接受根级别的任何有效JSON值——包括数组、字符串、数字和布尔值,而不仅限于对象。
格式化的键盘快捷键是什么? 在macOS上按Cmd+Enter,在Windows和Linux上按Ctrl+Enter触发格式化。按Cmd+Shift+M或Ctrl+Shift+M进行压缩。这些快捷键仅在"格式化/压缩"标签页激活时有效。
工具能处理非常大的JSON文件吗? 工具每条历史记录最多存储10,000个字符,但格式化本身除浏览器内存外没有内置限制。非常大的文件(数兆字节)可以正确格式化,但在低端设备上文本区域可能感觉迟缓。
生成的Schema针对哪个Schema草案? 生成器生成JSON Schema draft-07文档,通过输出中的"$schema": "http://json-schema.org/draft-07/schema#"标识。
相关工具
XML Formatter — 使用相同的缩进控件和压缩支持格式化和验证XML文档。
YAML Formatter — 格式化YAML文件并直接转换为具有可配置缩进的JSON输出。
JSON Converter — 在JSON与CSV、XML、YAML及其他数据格式之间相互转换。
立即试用JSON Formatter: JSON Formatter