免费转换器

JSON 格式化 和验证工具

在浏览器中即时格式化和验证JSON。无需上传,完全私密且免费。

将JSON文件拖放到此处

支持.json文件。或在上方粘贴您的JSON内容。

关于此工具

JSON 格式(通常称为漂亮打印或美化)采用紧凑的 JSON 并添加空格(换行符、缩进、一致的间距),以使结构对人类读者可见。紧凑 JSON 是正确的传输格式:它最大限度地减少了线路和存储上的字节数。格式化 JSON 是正确的检查格式:缩进的层次结构一目了然地显示嵌套结构,使差异有意义,并让开发人员无需在脑海中解析文档即可定位特定字段。

此格式化程序将输入解析为 JSON 以确认其有效,然后以一致的缩进重新发出它。无效输入会产生指向语法问题的错误。无论源有多紧凑或多混乱,有效输入都会重新格式化。缩进默认为两个空格,符合最常见的 JavaScript 约定。

格式化程序还提供缩小(逆操作),它会去除所有不必要的空格以生成最小的有效 JSON。最小化输出有利于生产传输;格式化输出对于开发和调试很有用。

为什么格式化 JSON

在没有缩进的情况下读取深度嵌套的 JSON 基本上是不可能的——该结构在技术上是存在的,但不可见。即使是中等复杂的 JSON 也会从格式化中受益匪浅。代码审查者、API 调试者和任何试图理解数据负载的人都需要格式化 JSON 来查看实际内容。

格式化也会捕获错误。如果 JSON 在格式化过程中无法解析,错误消息会标识语法问题的确切位置 - 通常是缺少逗号、不带引号的键或生产系统未标记的杂散尾随逗号。格式化程序是最简单的 JSON 验证器。

使用方法

粘贴 JSON,单击格式。

  1. 粘贴您的 JSON: 将原始或压缩 JSON 粘贴到输入区域。拖放 .json 文件也可以。
  2. 选择缩进: 默认为 2 个空格。对于遵循该约定的项目,请使用 4 个空格;如果下游工具需要,则使用制表符。
  3. 格式: 输入通过 JSON.parse 进行解析以确认有效性,然后使用 JSON.stringify 和所选缩进进行序列化。输入中的错误会产生一条解析错误消息,标识问题位置。
  4. 复制或下载: 将格式化的 JSON 复制到剪贴板或另存为 .json。输出在结构上与输入相同,但具有一致的空格。

常见用例

技术细节

格式化程序使用 JSON.parse 和 JSON.stringify,每个 JavaScript 运行时都提供相同的一对。解析遵循 RFC 8259(当前的 JSON 规范),接受严格的 JSON,但拒绝 JavaScript 对象文字、注释、尾随逗号和其他 JSON5 扩展。

JSON.stringify 接受缩进参数:数字(空格)或字符串(自定义缩进字符,例如制表符)。格式化程序公开这两个选项。输出按对象的源顺序排序(自 ES2015 起,在所有主要引擎中保留属性插入顺序)。

边缘情况:超出 Number.MAX_SAFE_INTEGER 的大数字在解析时会丢失精度(已知的 JSON 限制;对超过 2^53 的 ID 使用字符串值)。字符串中的 Unicode 转义符按字面意思保留。每行的尾随空白被删除。

最佳实践

常见问题

What types of JSON errors does this tool detect?
该工具根据 RFC 8259 JSON 规范检测丢失的逗号、不匹配的方括号/大括号、无效字符串转义、尾随逗号、单引号字符串以及其他语法违规。
它可以处理非常大的 JSON 文件吗?
是的。格式化程序使用本机 JavaScript 解析在浏览器中处理 JSON,因此它可以有效地处理高达几兆字节的文件。对于极大的文件 (50MB+),处理时间取决于您的设备。
它支持带注释的 JSON (JSONC) 吗?
标准 JSON 不允许注释。如果您的输入包含注释,验证器会将其标记为错误。对于 JSONC 支持,请在格式化之前删除注释。
格式化会改变我的数据值吗?
不会。格式化仅调整空格和缩进——您的数据类型、值和结构保持完全相同。
是否支持 JSON5 功能(注释、尾随逗号)?
不会。格式化程序严格遵循 RFC 8259。 JSON5 特性会导致解析错误。要使用 JSON5,​​请首先使用 JSON5 解析器转换为标准 JSON。
我的 JSON 是否已上传到服务器?
不会。解析和格式化完全在浏览器中使用内置 JSON 函数进行。
大数会失去精度吗?
JavaScript 将数字表示为 64 位浮点数,因此大于 2^53(约 9 万万亿)的整数会失去精度。对于 ID 或其他大整数值,将它们存储为 JSON 中的字符串。
我可以按字母顺序对按键进行排序吗?
JSON.stringify 不对键进行排序。在字符串化之前使用单独的排序步骤(或具有排序支持的格式化程序)按字母顺序排列键。