Sublime怎么清理JSON格式冗余代码

落晨吖_1780

落晨吖_1780

2026-11-16

488人浏览

原创

Sublime不清理JSON冗余代码,仅格式化;行尾空格用原生trim_trailing_white_space_on_save解决,格式化推荐Pretty JSON插件,注释和重复键需命令行或脚本处理。

sublime怎么清理json格式冗余代码

Sublime 本身不清理 JSON 冗余代码,只负责格式化;所谓“冗余”需先明确定义——是行尾空格?重复键?注释?还是无用字段?不同目标得用不同方法,不能一招通吃。

保存时自动删 JSON 行尾空格:配 trim_trailing_white_space_on_save 就够

JSON 文件里行尾空格虽不影响解析,但会干扰 Git diff、校验和比对,也容易被误认为“有内容”。原生配置即可解决,无需插件:

  • 打开 Preferences → Settings – User(右侧面板),确保 JSON 合法,加入:
    {"trim_trailing_white_space_on_save": true}
  • 该设置只清理非空行末尾的 和 ,不动缩进、不删空行、不碰 (两个空格+换行)这类 Markdown 硬换行——但在 JSON 里本就不该出现,所以安全
  • 若没反应,先看右下角是否显示 JSON;若显示 Plain Text 或 JavaScript,它可能加载了语法专属设置,把 trim_trailing_white_space_on_save 覆盖成 false
  • 别同时开 TrailingSpaces 插件——两者共存会导致光标跳动、重复触发,选一个就行

手动一键格式化 JSON:用 Pretty JSON 插件最稳

“清理冗余”常被误解为“压缩后变一行”,但真正需要的是可读性提升:缩进对齐、换行清晰、括号匹配。内置 Reindent 不可靠,JsFormat 会乱加逗号或吃反斜杠,Pretty JSON 是目前最贴近 JSON RFC 的选择:

  • 必须满足四个前提才生效:Package Control 已装、Pretty JSON 已装、右下角状态栏显示 JSON、文件编码是 UTF-8(不是 UTF-8 with BOM)
  • 快捷键默认是 Ctrl+Alt+J(macOS Cmd+Alt+J),但建议手动绑定并加 context 限定:
    [{"keys": ["ctrl+alt+j"], "command": "pretty_json", "context": [{"key": "selector", "operator": "equal", "operand": "source.json"}]}]
  • 它会校验语法:如果 JSON 有单引号、末尾逗号、未闭合字符串,会弹窗报错行号,不强行格式化——这是保护,不是缺陷
  • 别用 HTML-CSS-JS Prettify 默认 JSON 模式:它默认关 "json": true,容易把 {"path": "a\b"} 错处理成 {"path": "ab"}

想删 JSON 里的注释或重复字段?别用 Sublime 原生功能

JSON 标准不支持注释(// 或 /* */),也不定义“重复 key”的行为。如果你的文件里有这些,说明它根本不是合法 JSON,而是带注释的配置片段(如 .jsonc)或前端 mock 数据。Sublime 原生和主流插件都不处理这类语义清理:

JSON Toolkit
JSON Toolkit

JSON文件多功能工具。支持格式化、验证、压缩、键排序及点记法路径查询。零依赖。

下载
  • Pretty JSON 遇到注释直接报错退出,不会自动删;JSONLint 同理
  • 重复 key(如 {"a":1,"a":2})在 JS 引擎里以最后一个为准,但 Sublime 不做运行时解析,也不会帮你去重——那是后端或构建脚本的事
  • 真要批量删注释,用命令行更可控:
    sed -e '/^[[:space:]]*///d' -e '/^[[:space:]]*/*/,$ {/^[[:space:]]**//d; /^[[:space:]]*/*/d}' data.json(Linux/macOS)
  • 想筛字段?写个 Python 脚本比在编辑器里正则替换靠谱得多,尤其涉及嵌套、数组、动态 key 名时

大文件或批量 JSON 清理:绕过 GUI,直上命令行

Sublime 的 Find in Files 或全选+格式化,在 >5MB 的 JSON(比如日志 dump、导出数据)上极易卡死甚至崩溃。这不是你操作问题,是 GUI 替换引擎的设计限制:

  • 验证合法性优先:python -m json.tool data.json > /dev/null,返回 0 才继续下一步
  • 压缩空格(非行尾):用 jq -c . data.json > compact.json —— 它删所有空白符,产出最小合法 JSON,适合传输
  • 美化+删行尾空格一步到位:jq '.' data.json | sed 's/[[:space:]]*$//' > pretty.json
  • 批量处理多个文件:for f in *.json; do jq '.' "$f" | sed 's/[[:space:]]*$//' > "fmt_$f"; done

最容易被忽略的是:JSON 的“冗余”从来不在编辑器层面定义。空格要不要留、字段要不要删、注释算不算脏数据——这些决策点都在业务逻辑里。Sublime 只负责把已确认合法的内容,按标准方式呈现出来。配错 trim_trailing_white_space_on_save 顶多白忙活,但拿它当 JSON Schema 校验器或字段清洗工具,就真会出生产事故。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.06.20

5036

8

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

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

2023.07.28

1455

5

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

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

2023.08.03

1938

5

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

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

2023.08.17

10583

11

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

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

2023.09.01

1080

4

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

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

2023.09.04

3224

5

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

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

2023.09.14

1689

5

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

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

2023.09.21

5549

3

js生成随机数方法
js生成随机数方法

JavaScript生成随机数的方法,包括使用Math.random()方法生成指定范围内的随机整数、生成随机字符串和生成随机颜色。根据具体需求,可以选择适合的方法来生成随机数,以实现各种功能 。

2023.09.25

3255

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程