讲师中心 微信公众号
AI工具推荐 视频效率加速

Sublime Text中利用Pretty JSON格式化脚本

大墨姑娘_3250

大墨姑娘_3250

发布时间:2026-07-21 07:47:26

|

617人浏览过

|

来源于php中文网

原创

安装Pretty JSON插件后没反应,首要检查Package Control是否装好及Python环境是否可用;若命令面板调不出或Install Package无响应,则插件未正确安装,需重装Package Control并重启Sublime。

sublime text中利用pretty json格式化脚本

安装 Pretty JSON 插件后没反应?检查 Package Control 和 Python 环境

Sublime Text 本身不带 JSON 格式化能力,Pretty JSON 是第三方插件,依赖 Package Control 安装。如果按快捷键没反应,大概率是插件根本没装成功,或者 Sublime 找不到 Python 解释器。

  • 确认已通过 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调出命令面板,输入 Install Package 并回车,再搜 Pretty JSON 安装 —— 不是手动下载 zip 放进 Packages/ 目录(容易漏依赖)
  • Sublime Text 4 默认自带 Python 3.8+ 运行时,但如果你用的是旧版(如 ST3),需确保系统 PATH 中有可用的 python 或 python3 命令;否则插件会静默失败,控制台(Ctrl+`)里会出现 No module named json 或 Python executable not found
  • 安装后重启 Sublime Text,再试一次 —— 插件不会热加载所有功能

JSON 格式化失败报错 Invalid JSON string?先检查编码和 BOM

这个错误不是语法问题,而是 Sublime Text 读取文件时解码失败。常见于 Windows 下用记事本保存的 JSON 文件,自带 UTF-8 with BOM 头,Pretty JSON 的底层解析器(json.loads())无法容忍 BOM。

Aria2 Json Rpc
Aria2 Json Rpc

通过 JSON‑RPC 2.0 与 aria2 下载管理器交互,使用自然语言命令管理下载、查询状态并控制任务。适用于 aria2、下载管理或种子操作。

下载
  • 打开文件,点击右下角编码显示(如 UTF-8),选 Convert to UTF-8(不是 “Save with Encoding”)—— 这会剥离 BOM 并重载内容
  • 如果文件里混有非 ASCII 字符(比如中文注释或字段值),且声明了 "encoding": "gbk" 类伪配置,删掉。JSON 标准只认 UTF-8
  • 粘贴进 Sublime 的 JSON 片段如果开头有不可见字符(比如从网页复制带零宽空格),用 Ctrl+Shift+P → View: Show Console,输入 view.substr(sublime.Region(0, 10)) 查看前 10 字符的原始码位

想自定义缩进空格数或排序 key?改用户配置,别碰默认设置

Pretty JSON 的格式化行为由 PrettyJson.sublime-settings 控制,但直接改默认文件(Packages/Pretty JSON/PrettyJson.sublime-settings)会被插件更新覆盖。必须改用户级配置。

  • 菜单栏 → Preferences → Package Settings → Pretty JSON → Settings,右侧用户配置里加:
  • {
        "indent": 2,
        "sort_keys": true,
        "ensure_ascii": false
    }
    
  • "indent" 支持数字(空格数)或字符串(如 "\t");"sort_keys" 默认 false,设为 true 后会按字典序重排 object key,适合 diff 对比
  • "ensure_ascii": false 是关键:不转义中文等 Unicode 字符,否则 "名称": "张三" 会变成 "\u540d\u79f0": "\u5f20\u4e09"

对大 JSON 文件卡死或崩溃?用命令行替代 + 分块处理

Pretty JSON 在 Sublime 内运行,内存受限。超过 5MB 的 JSON(比如导出的 MongoDB 数据、日志快照),插件会卡住甚至触发 Sublime 的无响应弹窗。

  • 终端里用原生工具更快更稳:python -m json.tool input.json > output.json(Python 自带,支持 --indent 2 参数)
  • 若需排序 key 或保留注释(虽然 JSON 标准不支持),改用 jq:jq '.' input.json > output.json,它还能过滤、提取字段
  • 真要在 Sublime 里处理大文件,先用 Ctrl+Shift+P → Selection: Expand Selection to Brackets 选中某一段 object/array,再执行格式化,避免全文件解析
实际用起来,最常被忽略的是 BOM 和用户配置路径 —— 很多人改了默认 settings 文件,重启十次都没效。另外,别指望它处理带单引号、尾逗号或注释的“类 JSON”,那得先过一遍 json5 或 yaml 转换。

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

3936

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1255

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1598

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

9423

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

880

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2364

2023.09.04

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

1469

2023.09.14

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

3989

2023.09.21

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

20

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn