这个工具能做什么?
这是一个完全在浏览器中运行的 JSON 和 YAML 工作台。把内容粘贴或拖入编辑器后会立即解析:如果有问题,你会看到每个问题的行号和列号、通俗的解释;对于括号不匹配,还会推测缺失的括号应该放在哪里。输入有效时,你可以美化、压缩、对键排序,或在 JSON 与 YAML 之间互相转换。对比页面会比较文件的两个版本,只显示发生变化的部分。
与大多数在线格式化工具不同,这里的 JSON 解析器是为诊断而不是为速度而写的。浏览器内置的 JSON.parse 遇到第一个问题就会停下,只给出类似 Unexpected token 的提示。而这个解析器会继续解析,一次性收集所有问题,并生成一个修复后的版本,让你可以一次改完整个文件,而不必每次只修一个错误。
全部工具
- JSON 格式化工具用 2 或 4 个空格或制表符美化,支持键排序。
- JSON 校验器精确到行列定位每个错误,并给出修复。
- JSON 压缩工具去除空白,压缩为一行。
- YAML 格式化工具重新缩进 YAML 并保留注释。
- YAML 校验器缩进、制表符、重复键、YAML 1.1 陷阱。
- JSON 转 YAML无损转换,大数字保持不变。
- YAML 转 JSON支持锚点、合并键和多文档。
- JSON 对比比较两个 JSON 文件,忽略键顺序。
- YAML 对比按路径逐项比较 YAML 配置。
- 文本对比两段文本的行级和词级差异。
如何格式化或校验 JSON 和 YAML
- 粘贴、拖入或打开文件。标签会显示内容被识别为 JSON 还是 YAML,状态栏会随输入实时更新。
- 查看问题列表。每一项都有一个按钮,可跳转到编辑器中的确切位置;受影响的行会在行号栏中高亮。
- 点击“格式化”“压缩”或某个转换按钮。选择 2 个空格、4 个空格或制表符,并决定是否对键排序。
- 复制或下载结果,或点击“用作输入”继续处理。
能检测出的 JSON 错误
以下是手动编辑 JSON 或从 JavaScript、Python、日志文件中复制时最常见的错误。它们都会带位置报告,并可通过“修复 JSON”按钮修复:
| 你写的内容 | 校验器的提示 | 有效的 JSON |
|---|---|---|
{"a": 1,} | "}" 前有尾随逗号 | {"a": 1} |
{"a": 1 "b": 2} | 第 1 行的值后缺少逗号 | {"a": 1, "b": 2} |
{"a": [1, 2} | 应为 "]" 以闭合第 1 行开始的数组 | {"a": [1, 2]} |
{'a': 'b'} | 字符串必须使用双引号 | {"a": "b"} |
{a: 1} | 属性名必须放在双引号中 | {"a": 1} |
{"n": 007, "x": .5} | 前导零;数字以小数点开头 | {"n": 7, "x": 0.5} |
{"ok": True, "v": None} | 布尔值和 null 须小写 | {"ok": true, "v": null} |
// comment | JSON 中不允许注释 | 删除注释 |
能检测出的 YAML 问题
YAML 错误大多与空白有关:用制表符缩进、子键多缩进了一个空格,或者写成 key:value 而冒号后没有空格,YAML 会把它读成一个字符串。校验器会报告这些问题及其行号,并对 PyYAML 等 YAML 1.1 解析器与 YAML 1.2 解读不同的值给出警告,例如 country: NO 会变成 false,mode: 0755 会变成八进制数字。
隐私
本页面由静态 HTML 和 JavaScript 构成。你粘贴的任何内容都不会被传输、存储或记录,无需注册账号;页面加载完成后即使断开网络,工具也能继续使用。