Atom格式化JSON必须满足三条件:文件后缀为.json或右下角设为JSON语言模式;全文件格式化需先Ctrl+A全选;原始JSON须合法(无注释、无尾逗号、键值均用双引号)。

Atom 编辑器格式化 JSON 数据,关键不在“能不能”,而在于“触发条件是否全满足”——装了插件但按快捷键没反应、格式化后报错、或只高亮不校验,90% 是语法识别、文件合法性、插件冲突这三处卡住了。
怎么让 ctrl+alt+b 真的起作用
这个快捷键是 pretty-json 和 jsonpp 的默认绑定,但不是按下就生效,得同时过三关:
- 文件后缀必须是
.json,或右下角手动点开语言模式 → 选 JSON(显示Plain text或JavaScript都会跳过) - 不能有选中内容:如果只选了几行,
jsonpp只格式化选区;全文件格式化前先按ctrl+a全选 -
pretty-json不校验语法,jsonpp会严格拒绝非法输入——遇到Unexpected token不是插件坏了,是 JSON 本身错了
为什么格式化完直接报错:Unexpected token
这不是 Atom 或插件的问题,是原始 JSON 违反了 RFC 8259 标准。插件只是把错误暴露出来:
- 删掉所有
//或/* */注释(JSON 不支持) - 检查尾逗号:比如
{"a": 1,}→ 改成{"a": 1} - 单引号一律换双引号:
'key': 'val'❌ →"key": "val"✅ - 中文键名必须加双引号:
{姓名: "张三"}❌ →{"姓名": "张三"}✅
想边写边看错误?装 linter-jsonlint,它会在出错字符下方画红波浪线,比反复试格式化快得多。
想保留注释又想格式化,怎么办
标准 JSON 不允许注释,但 VS Code 和部分工具支持 .jsonc(JSON with Comments)扩展名。Atom 原生不认 .jsonc,但可以曲线救国:
- 把文件后缀改成
.jsonc,再装插件jsonc(仅提供语法高亮,不格式化) - 格式化仍要用
jsonpp或pretty-json,但必须先手动删注释,或用在线工具转成标准 JSON 再粘贴回 Atom - 别指望插件自动剥离注释——它们的设计目标就是“严格校验”,不是“宽容转换”
装 atom-beautify 还是 prettier-atom 来处理 JSON
都不推荐。这两个插件对 JSON 的支持是附带的、不可靠的:
-
atom-beautify调用js-beautify处理 JSON,但它默认不启用 JSON 的Beautify On Save,且配置项里找不到 JSON 语言区块 -
prettier-atom根本不支持.json后缀——它的File Extensions列表默认只有js、ts、vue等,加了json也读不到.prettierrc里的 JSON 相关规则 - 真正为 JSON 设计的插件只有
pretty-json和jsonpp,前者轻量无依赖,后者更严格但不支持排序
最稳的组合是 pretty-json(格式化) + linter-jsonlint(校验),别的都属于绕远路。真正容易被忽略的,是误把“能高亮”当成“已合法”——右下角显示 JSON 语法,不代表内容能被 JSON.parse() 消化。


















