VSCode中JSON字符串粘贴后乱码或单行,需先切换语言模式为JSON,再用Shift+Alt+F(Win/Linux)或Shift+Option+F(macOS)格式化;若无效,检查语法错误、格式化器配置或改用jq等外部工具。
JSON字符串粘贴后直接变乱码或单行?
VSCode默认不会自动格式化剪贴板里的JSON字符串,尤其是从浏览器控制台、日志或邮件里复制过来的
这种没换行没缩进的文本。它会原样塞进编辑器,看着像一坨密文。
解决方法很简单:选中整段JSON(快捷键
或
),然后按
(Windows/Linux)或
(macOS)。前提是当前文件语言模式是
——如果右下角显示的是
,先点它,选
。
别用
,那是开发者工具快捷键,VSCode里无效
如果按了没反应,大概率是语言模式不对,或者装了冲突的格式化插件(比如Prettier没配JSON支持)
临时切语言模式比改文件后缀更快:快捷键
→ 输入
回车
JSON内容混在JavaScript/HTML里怎么单独格式化?
比如你复制了一段
响应体:
,直接选中整个字符串再格式化会失败——VSCode识别为JS代码,不是纯JSON。
得先把JSON部分“抠出来”:双击字符串内容(注意别点到引号外),按
(命令面板),输入
,但要先确保此时光标在被选中的字符串内部,且语言模式已手动切为
。
更稳的办法:复制JSON字符串 → 新建空白文件 → 粘贴 →
→ 选
→
别试图用正则替换加换行,容易把字段值里的
也误处理
如果JSON里有注释(如
),VSCode原生JSON格式化会报错
,必须删掉注释再操作
为什么有时
没反应,或格式化后缩进错乱?
常见原因就两个:格式化器没启用,或者配置项冲突。VSCode本身不带JSON格式化引擎,依赖内置的
支持或第三方插件(如Prettier)。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
检查路径:
关掉它,避免保存时意外覆盖;重点看
是否设为
(推荐)。
如果用了Prettier,确认其配置里
已开启,否则它会跳过JSON文件
缩进异常(比如全用空格但显示4格,实际想2格):查
设置,JSON格式化器会尊重这个值,而不是自己定
遇到
错误,八成是JSON语法不合法,用
快速定位哪一行少了个逗号或引号
超大JSON文件(>10MB)卡死或崩溃?
VSCode对大文件的语法高亮和格式化是懒加载的,但
会尝试解析整棵树,内存扛不住就会无响应甚至退出。
绕过去的方法:终端里用
命令行工具,不依赖编辑器。先确认已安装
(macOS用
,Windows用
),然后在文件所在目录运行:
这比VSCode快得多,也更稳。
如果连
都不想装,浏览器也能救急:打开
,粘贴JSON进去回车
VSCode里打开大JSON前,建议先禁用所有非必要插件,特别是那些带“JSON Schema”“Auto-complete”的,它们会在后台偷偷解析
别用
去处理大JSON片段——它照样会尝试完整解析上下文,和全选没区别
真正卡住你的往往不是功能找不到,而是语言模式没切对、JSON本身有隐藏语法错误、或者根本没意识到VSCode对大文件的处理边界在哪。这些地方不盯住,按一百遍
也没用。
{"name":"alice","scores":[95,87]}Ctrl+ACmd+AShift+Alt+FShift+Option+FJSONPlain TextJSONCtrl+Shift+ICtrl+K Mjsonfetchresponse.json() // {"user":{"id":1,"tags":["admin","beta"]}}Ctrl+Shift+PFormat DocumentJSONCtrl+K MJSONShift+Alt+F\n// todoUnexpected token / in JSONShift+Alt+FjsoncSettings → Text Editor → Formatting → Format On SaveDefault Formatter for JSONvscode.json-language-features"json.enable": trueeditor.tabSizeFailed to format documentCtrl+Shift+P → JSON: ValidateShift+Alt+Fjqjqbrew install jqchoco install jqjq '.' input.json > formatted.jsonjqdata:text/html,Format SelectionShift+Alt+F