跳到工具区
数据与格式

JSON 格式化与校验

在线格式化、美化、校验和压缩 JSON,精确定位语法错误,并查看树形结构或运行 JSONPath 查询。

输入0 个字符
结果0 个字符
就绪

想要更顺手的原生工作流?

把「JSON 格式化与校验」放到一个快捷键里。

DevSexy Mac 版保留同样私密的本地处理,同时提供全局快捷键;不用管理浏览器标签页,需要时直接呼出。

全局快捷键可离线使用本地处理
免费试用 Mac 版

当前浏览器工具仍然免费。

先看懂结构,再调整缩进

JSON 格式化在线工具 — 校验、压缩与 JSONPath 查询

格式化能让合法 JSON 更好读,却不能证明有语法错误的内容可信。DevSexy 将排版和校验分开处理,并明确标出解析在哪一行、哪一列中断。

原始 JSON

{"user":{"id":17,"roles":["editor"]}}

解析结果

对象 · 1 个根级键 · 2 个嵌套值

节点路径

$.user.roles[0] → “editor”

从原始 JSON 到可定位的树形结构

错误定位

行号和列号只是线索,真正的错误往往出现在前一个字符。

漏写逗号或引号时,解析器可能到下一个字段才确认语法无法继续。诊断结果会把原始报错、字符偏移、行列位置和附近源码放在一起,方便你修复真正出错的边界。

第 4 行第 3 列:出现了意外的字符串
2  "name": "Mole"
3  "active": true
4  "roles": ["admin"]
   ▲ 此字段前缺少逗号

排版选项改变代码差异,不改变数据

缩进方式

2 空格更紧凑,4 空格更便于逐层查看,Tab 则适合遵循编辑器设置;三者都会保留解析后的值。

键名顺序

按键名排序能让测试数据和快照更稳定,但也可能打乱人工编写配置时的阅读顺序,因此默认不启用。

JSON 压缩

压缩会解析后重新序列化,移除排版空白,并非 ZIP 压缩。重复键和超出 JavaScript 安全整数范围的数字不保证保真;大型整数标识应使用字符串。

标准 JSON 不等于 JSONC

标准 JSON 不接受注释和尾随逗号。明确开启 JSONC 后可接受这两种语法:格式化可保留注释,压缩则输出不含注释的标准 JSON。未加引号的键、NaN 和 Infinity 在两种模式下都无效。

✓ 标准 JSON:字符串、数字、布尔值、null、数组和对象

× 两种模式都不接受:未加引号的键、NaN 和 Infinity

先通过 JSON 校验,再运行 JSONPath 查询

先完成校验,再使用根节点、成员、数组索引或通配选取。目前不支持完整 JSONPath 语法,例如递归下降、过滤器和切片。

$[0].id$.users[*].email$.orders[*].status

运行这些 JSON 实例

先对照输入与预期结果,再把同一份数据和选项载入编辑器。

载入实例会替换当前输入和处理选项。

格式化标准 JSON 数据

格式化 · 2 空格缩进 · 关闭 JSONC · 关闭键名排序 · JSONPath 根节点。

输入

{"user":{"id":17,"roles":["editor"]},"active":true}

预期结果:保留相同解析值的嵌套对象,并显示便于阅读的缩进。

{
  "user": {
    "id": 17,
    "roles": [
      "editor"
    ]
  },
  "active": true
}

把带注释的配置转为标准 JSON

压缩 · 开启 JSONC · JSONPath 根节点。关闭 JSONC 后,可以看到同一输入为何无法按标准 JSON 解析。

输入

{
  // local development
  "port": 3000,
  "enabled": true,
}

预期结果:序列化后的 JSON 不再包含注释和尾随逗号。若选择格式化并开启 JSONC,则可保留注释。

{"port":3000,"enabled":true}

继续处理数据的下一步

用 JSON Schema 校验数据结构

语法正确不代表必填字段和类型正确;继续按你的 schema 校验数据。

转换 YAML 或 TOML 配置

YAML 和 TOML 应交给配置工具处理,不能直接当成 JSON 解析。

比较修改前后的 JSON

两份数据使用相同的缩进和键名排序设置,再比较版本差异。

在 Mac 上重复这套流程

用快捷键随时打开格式化与检查工具,并在本地离线处理。

直接回答

什么是 JSON 格式化与校验?

在线格式化、校验和压缩 JSON,按行列定位语法错误,查看树形结构并测试 JSONPath。数据仅在浏览器本地处理,无需上传。

它能做什么?

  • 格式化
  • 校验
  • 压缩
  • 树形视图

如何使用 JSON 格式化与校验

  1. 01

    明确 JSON 语法模式

    标准 JSON 保持 JSONC 关闭;需要接受注释和尾随逗号时,再明确开启。

  2. 02

    选择操作并提供数据

    粘贴数据或载入实例,选择格式化、校验、压缩或树形结构;处理整个文档时,将 JSONPath 设回 $。

  3. 03

    检查解析结果

    复制前先检查诊断信息。超出 JavaScript 精确数值范围的大整数标识应保留为字符串。

常见问题

格式化会改变 JSON 的值吗?
对键名唯一且数字可精确表示的一般 JSON,会保留解析后的值。重新序列化可能改变数字写法与转义形式;重复键和大型整数需要另行处理。
可以格式化大型 JSON 文件吗?
可以。处理任务会交给 Web Worker,避免页面卡顿;工具会根据内容量自适应处理,而不是设置任意的字符数上限。
为什么报错位置在真正错误的后面?
解析器通常会报告语法已经无法继续的位置,因此漏写逗号、引号或括号时,报错可能出现在紧随其后的字符。
JSONPath 和 JSON Pointer 是一回事吗?
不是。JSONPath 用查询表达式选择一个或多个值;JSON Pointer 则用斜杠分隔的引用标记指向一个确定位置。