Ctrl+Alt+J仅格式化合法JSON,不执行转义;真正转义需用Transform插件的escape for json string命令,自动加引号、转义双引号和反斜杠等,确保文本可安全嵌入JSON值位置。

Ctrl+Alt+J 是格式化,不是转义:别混淆这两个操作
很多人装完 Pretty JSON 就以为按 Ctrl+Alt+J 能把普通字符串变成 JSON 字符串(比如把 hello "world" 变成 "hello "world""),其实它只做缩进、换行、校验——输入必须已经是合法 JSON,否则直接报错。真正的「转义为 JSON 字符串」是另一件事:给原始文本加双引号、转义引号、反斜杠、换行符等,让它能安全塞进 JSON 的 "value" 位置。
用 Transform 插件一键 escape for json string
这是目前最省事、不写代码、效果可靠的方案。Transform 插件自带 escape for json string 命令,会自动:
- 把选中文本用双引号包裹
- 将
"→"、→\、真实换行符 → - 保留制表符、Unicode(如
u4f60)不变 - 不添加多余空格或逗号,不改动语义
安装后,选中文本 → Ctrl+Shift+P → 输入 transform: escape for json string 回车即可。也可绑定快捷键,在 Preferences → Key Bindings 里加一行:
{"keys": ["ctrl+alt+e"], "command": "transform", "args": {"operation": "escape_for_json_string"}}
反转义(unescape)要小心 Unicode 和真实换行
反转义常见于从日志或 API 响应中复制出来的 JSON 字符串,比如 "path\fileu4f60
"。直接用正则替换
→ 换行容易出错,因为:
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
-
u4f60这类 Unicode 转义必须由 JSON 解析器处理,不能简单替换成汉字再保存——Sublime 不是运行时环境 - 真实换行符(回车)和
字符在编辑器里视觉一样,但 JSON 语法只认字符;按Ctrl+Enter插入的是真实换行,需先手动替换成\n再 unescape - Transform 插件的
unescape json string命令只处理标准 JSON 转义序列,对\u也保持原样,不会“渲染”成汉字
所以反转义后若要验证是否正确,建议粘贴到浏览器控制台执行 JSON.parse('...'),而不是仅靠肉眼判断。
没插件时用正则临时救急:注意边界和贪婪匹配
受限环境无法装插件?可以用 Sublime 自带的「查找替换」(Ctrl+H)配合正则模拟转义:
- 加引号并转义双引号:
Find What:^.*$,Replace With:"$0"→ 先包一层;再Find What:",勾选Regex,Replace With:" - 转义反斜杠:
Find What:\,Replace With:\\(注意要输两对) - 换行符转
:Find What:,Replace With:\n—— 但仅适用于单行选中;多行时需先开启Alt+Enter多行编辑,逐行操作
这种做法容易漏掉嵌套引号或误替换路径中的反斜杠,复杂字符串强烈不建议手撸正则。
真正麻烦的不是操作步骤,而是分不清「JSON 字符串字面量」和「JSON 文档」——前者要 escape/unescape,后者只该用 Pretty JSON 格式化。一个文件里混着两种需求时,先切清楚上下文再动手。

















