Notepad++ JSON格式化需插件或外部工具,常见问题包括BOM残留、单引号、注释、尾逗号、非法值等;JSON Viewer校验严格,JSTool仅正则匹配易出错;大文件推荐Python json.tool。

Notepad++ 本身不带 JSON 格式化功能,必须靠插件或外部工具;装错插件、选错快捷键、没清 BOM,都会导致“点一下就报错”或“排完还是扁平一行”。
JSON Viewer 插件报 “Invalid JSON” 怎么快速定位原因
它调用的是系统级 JSON 解析器,不是“美化器”,而是“校验+格式化”二合一。报错 ≠ 插件坏了,大概率是输入文本不合法。
- 开头有 BOM 或不可见字符(比如从微信/钉钉复制来的):用菜单
编码 → 转为 ANSI,再编码 → 转为 UTF-8 无 BOM - 用了单引号:
{'name': 'foo'}❌ → 必须改成{"name": "foo"}✅ - 含 JavaScript 风格注释:
// 这是注释或/* ... */→ 全删 - 数组/对象末尾多逗号:
[1,2,]❌ → 改成[1,2]✅ - 值是
undefined、NaN、Infinity→ 这些不是 JSON 合法值,得换成null或字符串
JSTool 的 Ctrl+Alt+M 为什么有时排版错乱
它不真正解析 JSON,只按正则“猜结构”,适合已知合法、但缩进混乱的 JSON;不适合调试原始日志或不确定来源的字符串。
- 快捷键是
Ctrl+Alt+M,不是Ctrl+Alt+Shift+M(后者是 JSON Viewer 的) - 务必先选中文本再触发,否则会尝试格式化整文件——如果前面几行是 HTML 或注释,可能把它们也“带歪”
- 字符串里含换行符(如
"msg": "line1\nline2")时,它可能误判换行位置,导致缩进塌陷 - 缩进固定为 2 空格,不能改;也不支持
sort_keys
处理 >5MB 大文件或需要精确控制时,别碰插件
JSON Viewer 和 JSTool 在大文件下容易卡死、内存溢出,甚至直接崩溃。Python 的 json.tool 是更稳的选择,前提是本地有 python 命令可用。
- 命令模板:
python -m json.tool "$(FULL_CURRENT_PATH)" > "$(CURRENT_DIRECTORY)\formatted_$(NAME_PART).json" - 加
--indent 4可设为 4 空格(Python 3.9+):python -m json.tool --indent 4 "$(FULL_CURRENT_PATH)" > ... - 想排序 key:
python -c "import json,sys; print(json.dumps(json.load(sys.stdin), indent=4, sort_keys=True))" output.json - 原文件不动,生成新文件——避免误覆盖或乱码风险
最常被忽略的一点:中文变问号不是插件问题,是 Notepad++ 编码识别失败。一旦保存,基本不可逆。没保存前立刻 Ctrl+Z,然后 编码 → UTF-8 无 BOM 再试;长期建议在 设置 → 首选项 → 新建文档/默认目录 → 编码 里设成 UTF-8 无 BOM。


















