必须分三步闭环操作:先清理空行和尾部空格并统一换行符,再用正则将每行包入双引号,接着替换换行符为逗号,最后手动添加方括号;跳过任一环都将导致json解析失败。

不能直接“转为单行数组”,Sublime 本身不生成语法结构,只做文本变换;你真正要的,是用两轮正则替换 + 手动加括号,把多行变成 ["a", "b", "c"] 这种字符串——它看起来像数组,但得你自己确保引号、逗号、方括号都对位。
为什么 Ctrl+J 不能用来构造数组
Ctrl+J 是拼接行为,不是结构化转换。它默认加空格,且完全无视语法边界:
- 遇到带注释的代码,比如
// item1换行item2,Ctrl+J会变成// item1 item2,注释吞掉下一行 - JSON 数组元素若含引号或嵌套结构,
Ctrl+J直接破坏格式,例如"name": "foo"换行"age": 25会被压成一行但缺逗号,JSON 解析失败 - 它不处理空行——如果原始数据里有空行,
Ctrl+J会把它们变成"",,导致数组里混入空字符串
用正则替换生成 ["a", "b", "c"] 的标准流程
必须分两步,且顺序不能错:
- 先清理干扰项:执行
Ctrl+H→ 查找^\s*$→ 替换为空(清空行和伪空行);再用Ctrl+Shift+P→ 输入Trailing Spaces: Remove清尾部空格;最后菜单File → Line Endings → Unix (LF) - 第一轮替换:选中目标行 →
Ctrl+H→ 开启.*(正则模式)→ 查找^(.+)$→ 替换为"$1" - 第二轮替换:查找
\r?\n→ 替换为,(逗号+空格)→ 此时末尾会多一个,,需手动删掉 - 最后在开头插入
[,结尾插入];别依赖自动补全,它不会反向匹配[和]
容易被忽略的硬伤:换行符、空行、原始内容里的引号
这三处不处理,生成的字符串大概率 JSON 解析失败:
- 从 Excel、微信、日志粘贴进来的文本,换行符大概率是
\r\n;只搜\n会漏掉部分行,必须用\r?\n - 空行会被
^(.+)$忽略(因.+不匹配空行),但第二轮\r?\n替换时,空行仍会产出额外的,,最终变成["a", , "b"]——这不是合法 JSON - 原始行里本身含
"(比如user"name"),正则"$1"会直接包进去,导致语法错误;这种场景必须提前转义或人工检查
真正安全的数组字符串,靠的是清理、正则、手动收尾三步闭环;任何想跳过其中一环的操作,都在把问题留给下游解析器。











