notepad++本身不支持原生json格式化,必须依赖插件或外部工具;格式化前须确保json合法、编码为utf-8无bom、语言模式设为json,三者缺一即报错或清空内容。

Notepad++ 本身不支持一键格式化 JSON,所谓“一键”必须依赖插件或外部命令,且前提是 JSON 内容合法、编码正确、语言模式设对——三者缺一,点再多下 Ctrl+Alt+Shift+M 或 Format JSON 都只会清空内容或报错。
JSON Viewer 插件点不动或格式化后变空?先查这五件事
它不是美化器,是解析器 + 格式化器二合一,失败即说明输入不合法:
- 开头有 BOM 或不可见字符(常见于微信/钉钉复制):菜单 → 编码 → 转为 ANSI,再 → 转为 UTF-8 无 BOM
- 用了单引号:
{'name': 'foo'}❌ → 必须改成{"name": "foo"}✅ - 含 JavaScript 注释:
// comment或/* ... */→ 全删 - 数组或对象末尾多逗号:
[1,2,]❌ → 改成[1,2]✅ - 值为
undefined、NaN、Infinity→ 这些不是合法 JSON 值,得换成null或字符串
JSTool 的 Ctrl+Alt+M 为什么排版错乱?
它不真正解析 JSON,只靠正则“猜结构”,适合已知合法但缩进混乱的文本,不适合原始日志或不确定来源的数据:
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 必须先选中文本再触发,否则会把前面几行 HTML 或注释也“带歪”
- 字符串里含换行符(如
"msg": "line1\nline2")时,可能误判换行位置,导致缩进塌陷 - 缩进固定为 2 空格,不能改;也不支持
sort_keys - 快捷键是
Ctrl+Alt+M,不是Ctrl+Alt+Shift+M(后者属于 JSON Viewer)
需要自定义缩进、排序 key 或处理大文件?绕开插件,用 Python
插件在 >5MB 文件下容易卡死或内存溢出,而 python -m json.tool 是更稳的选择,前提是本地有 Python 3.6+:
- 生成新文件(不覆盖原文件):
python -m json.tool "$(FULL_CURRENT_PATH)" > "$(CURRENT_DIRECTORY)\formatted_$(NAME_PART).json" - 指定缩进 4 空格(Python 3.9+):
python -m json.tool --indent 4 "$(FULL_CURRENT_PATH)" > ... - 强制键名排序:
python -c "import json,sys; print(json.dumps(json.load(sys.stdin), indent=4, sort_keys=True))" - 注意:命令中所有
$(...)是 Notepad++ 内置变量,必须原样保留,不能手动替换路径
最容易被忽略的其实是编码陷阱:中文变问号不是插件问题,是 Notepad++ 把 UTF-8 文件误判成 ANSI。一旦保存,基本不可逆。没保存前立刻 Ctrl+Z,然后编码 → UTF-8 无 BOM 再试。










