sublime本身不校验json语法,需先安装package control及json插件,用ctrl+shift+p执行json: validate确认文件合法后,再通过正则(如"name"s:s"(1*)")提取字段,大文件建议改用jq处理。" ↩

JSON字段提取前先确认文件是否合法
Sublime本身不校验JSON语法,直接打开损坏的文件会导致后续所有操作失效。遇到Unexpected token或高亮全乱时,别急着写正则——先用Ctrl+Shift+P调出命令面板,输入JSON: Validate(需安装Package Control后安装JSON插件)。验证失败就说明字段名都可能拼错,提取结果不可信。
用正则批量匹配目标字段值最稳
Sublime的Find → Find in Files(Ctrl+Shift+F)配合正则是最快路径,比写脚本还快。关键在模式写法:
- 提取
"name": "xxx"这类字符串值:用"name"s*:s*"([^"]*)",注意Enable Regex和Match Case要勾选 - 提取
"id": 123这类数字:用"id"s*:s*(d+),避免匹配到"id": null - 嵌套字段如
"user": {"name": "Alice"}:单次正则很难可靠提取,建议先用Ctrl+Click折叠外层对象,再局部搜索
导出结果时别漏掉换行和分隔符
查完后Find → Replace All in Files会覆盖原文件,必须先复制结果。正确流程是:Find → Find All(Alt+Enter)选中全部匹配项 → Ctrl+C → 新建标签页粘贴。常见坑:
- 粘贴后所有值挤成一行:手动加
替换,或提前在Replace框里填$1 - 字段值含换行或引号:正则要改用
"desc"s*:s*"((?:[^"\]|\.)*)",否则截断 - 导出CSV时逗号在值里:Sublime不自动加引号,得手动用
Replace把换成,再补首尾双引号
大文件(>5MB)别硬刚,换jq更省事
Sublime加载超大JSON会卡死,且正则引擎对深层嵌套支持弱。这时不如终端一行解决:
jq -r '.items[].name' data.json
前提是你装了jq(macOS用brew install jq,Windows用choco install jq)。它能处理流式解析、数组展开、空值过滤,而Sublime连.data[0].user.name这种路径都要拆成多步正则。
真正麻烦的是字段名动态变化或带特殊字符(比如"@type"),这时候连jq都要加引号转义,得回Sublime里手动筛——但至少不用等它加载完再崩溃一次。











