JSON 压缩
免费在线JSON压缩工具,支持JSON单行紧凑压缩、JSON转义/反转义,内置智能语法修复自动处理尾逗号等常见错误,实时显示压缩率,CodeMirror编辑器带快捷键,纯前端处理。
相关推荐
什么是JSON压缩(JSON Minify)?
JSON压缩(JSON Minification)是指去除JSON文本中所有不必要的空白字符(空格、换行符\n、制表符\t、回车符\r)和注释(非标准但常见),将多层缩进的格式化JSON转换为单行紧凑格式的过程。JSON压缩不改变任何数据内容——键名、键值、数据类型(字符串/数字/布尔/null/数组/对象)、嵌套结构完全保持不变,仅仅是移除了用于人类阅读的格式空白。
JSON压缩的核心价值在于减小数据体积。格式化JSON中的缩进空格和换行虽然对开发者友好,但在网络传输和存储时属于冗余字节。例如一个典型的API响应,格式化后可能有2KB,压缩后可能只有1.2-1.5KB,体积减少25%-40%。在高并发API场景、移动端弱网环境、大规模配置文件分发中,JSON压缩能显著降低带宽消耗、提升传输速度、减少服务器开销。生产环境中通常配合Gzip/Brotli等HTTP压缩一起使用,但JSON Minify作为内容层压缩仍然不可替代。
JSON压缩的实现非常简单:用JSON.parse()将文本解析为JavaScript对象,再用JSON.stringify(obj)不带缩进参数序列化输出即可——这正是本工具的核心实现方式。这种 parse + stringify 的方式天然保证了输出的JSON是100%合法的,还能自动去除非法注释和尾逗号(配合错误修复)。需要注意:JSON压缩与Gzip压缩是两个不同层面的优化——JSON Minify是内容层面去除冗余空白,Gzip是传输层面的通用压缩算法,两者可以叠加使用。
适用场景
- 后端开发把数据库导出的格式化JSON字段压缩成单行,再写入表的JSON/JSONB列以节省存储空间。
- 运维排查线上告警时,将监控平台里换行折叠的JSON告警内容压缩为单行,方便grep检索关键字段。
- 前端把设计稿导出的多行JSON主题配置压缩后,作为data-*属性或单行字符串内联到HTML标签中。
- 测试工程师把接口返回的JSON压缩转义后,粘进YAML或JSON格式的自动化测试用例data字段做断言。
- 移动端开发把打包进App的本地JSON资源压缩,减小安装包体积并加快首屏解析速度。
- 数据分析师从BI平台复制出带缩进的JSON查询结果,压缩成单行后贴入脚本变量继续处理。
- 在CI/CD流水线里把JSON配置注入环境变量前,先压缩为单行避免换行破坏shell变量赋值。
- 产品经理把埋点方案的JSON示例压缩转义后,嵌入需求文档或飞书表格的单元格中方便传阅。
- 从聊天记录或工单里复制到被转义成 \"key\":\"value\" 的JSON,一键反转义还原为可读结构再排查。
- 客户端与服务端联调时,把Charles/Fiddler抓包得到的格式化JSON压缩,粘到接口文档对比字段。
- 维护老项目时先用修复功能处理带JS注释和尾逗号的伪JSON配置,再压缩成标准合法JSON提交。
- 把Mock平台生成的多层嵌套JSON压缩为单行,直接填入Postman的raw请求体发起联调请求。
- 运维批量精简Kubernetes或Nginx相关的JSON配置片段,压缩后写入ConfigMap减少体积。
- 前端把i18n多语言JSON语言包压缩去除缩进,减小随bundle一起下发的静态资源大小。
- 把从YAML转换来的JSON先压缩,再转义为字符串字面量内嵌到Java/Python单测代码中固化预期结果。
- 数据同步脚本中把手工整理的JSON映射表压缩为单行,作为常量硬编码进代码避免多行拼接出错。
使用方法
- 将JSON内容粘贴到左侧编辑器,或点击上传按钮选择本地.json/.txt文件,也可点击「示例」按钮加载示例
- 默认自动执行压缩模式(400ms防抖),也可手动点击「压缩」按钮或按快捷键 Shift+Cmd/Ctrl+C
- 需要转义为代码字符串时按 Shift+Cmd/Ctrl+E 或切换模式为转义;需要还原转义字符串时按 Shift+Cmd/Ctrl+U
- 如果JSON有语法错误,底部会显示红色错误提示,有可修复错误时会出现「尝试修复」按钮,点击即可自动修正
- 底部状态栏实时显示压缩前/后字节数和压缩率百分比,确认结果后点击「复制」或「下载」按钮
- 左右面板间的分割条可拖动调整宽度,也可使用快捷键快速完成所有操作
功能特点
- 三合一功能:JSON紧凑压缩 + 转义(Escape)+ 反转义(Unescape),覆盖压缩体积、嵌入代码字符串、还原转义三大场景
- 智能语法修复:内置tryFixJSON引擎,自动检测并修复尾逗号、单引号、注释、未闭合引号等常见JSON错误
- CodeMirror编辑器:左侧输入右侧结果双栏布局,支持JSON语法高亮、可拖动分割条、字号调节
- 实时压缩统计:状态栏即时显示原始大小(Bytes/KB/MB)、压缩后大小、精确压缩率百分比
- 键盘快捷键:Shift+Cmd/Ctrl+C压缩、E转义、U反转义、O上传、D下载、K清空,高效不用鼠标
- 自动执行模式:粘贴或编辑后400ms防抖自动压缩/转义,所见即所得
- 文件上传下载:支持拖入或点击上传.json/.txt文件,处理后一键下载output.json
- 本地历史记忆:localStorage自动保存上次输入内容,刷新页面不丢失
- 示例数据:一键加载示例JSON快速体验,错误提示带修复按钮
- 纯前端安全:所有运算本地浏览器执行,数据不上传服务器,断网可用
常见问题
JSON压缩和JSON格式化有什么区别?
JSON格式化(美化/Beautify)是在键值对之间添加缩进、换行和空格,让人眼更容易阅读,适合开发调试;JSON压缩(Minify)则是去除所有不必要的空白字符(空格、换行、制表符、缩进),将多行JSON变为单行紧凑格式,目的是减小体积、提升传输效率,适合生产环境API传输、配置文件精简和嵌入代码字符串。两者是互补操作——开发时看格式化版本,上线时用压缩版本。
JSON转义(Escape)是什么?什么时候需要用?
JSON转义是指对JSON字符串中的特殊字符添加反斜杠转义(主要是把双引号 " 转成 \",反斜杠 \ 转成 \\,换行转成 \n 等),将多行JSON对象变成一个可以直接嵌入JavaScript、Java、Python等源代码中的单行字符串字面量。典型场景:在写单元测试时把JSON响应作为字符串内嵌到测试代码中;在Postman或curl命令中传递JSON字符串;在配置文件中把JSON作为字符串值。反转义(Unescape)则是将转义后的字符串还原为标准JSON。
输入的JSON有语法错误(如尾逗号),能压缩成功吗?
可以。本工具内置智能语法修复引擎(tryFixJSON),在压缩前会自动检测并尝试修复常见JSON错误:1)末尾多余逗号(trailing comma),如 {"a":1,};2)单引号代替双引号,如 {'a':1};3)未闭合的字符串;4)JavaScript注释(// 和 /* */);5)末尾多余逗号等。修复后再执行压缩或转义,确保输出100%合法的JSON。如果检测到可修复错误,会在面板上显示「尝试修复」按钮,点击即可一键修正。
JSON压缩会不会丢失数据?压缩率一般多少?
不会丢失数据。JSON压缩只是移除格式空白字符(空格、换行、制表符),不改变任何键名、键值、数据类型和结构,经 JSON.parse 再 JSON.stringify 后与原数据完全一致。压缩率取决于原JSON的格式化程度:如果原先是2空格缩进的格式化JSON,压缩率通常在 20%-40%(去除缩进和换行);如果有大量连续空格或注释(修复后),压缩率可达50%以上。状态栏实时显示原始字节数、压缩后字节数和精确压缩率。
在压缩敏感的JSON配置或接口数据时会泄露吗?
不会。本工具采用纯前端处理架构,所有JSON解析、压缩、转义、修复运算全部在您本地浏览器的JavaScript引擎中完成,数据不会通过任何网络请求上传到外部服务器,断网也可以正常使用。您的API密钥、数据库配置、业务数据等敏感信息始终留在本地。
支持哪些快捷键?
为提升效率,本工具提供了完整的键盘快捷键支持(macOS 用 ⌘+Shift,Windows 用 Ctrl+Shift):Shift+⌘/Ctrl+C 一键压缩;Shift+⌘/Ctrl+E 转义;Shift+⌘/Ctrl+U 反转义;Shift+⌘/Ctrl+O 上传文件;Shift+⌘/Ctrl+D 下载结果;Shift+⌘/Ctrl+K 清空。输入时工具也会400ms防抖自动执行当前模式,无需反复点击按钮。
术语表
- JSON
- JavaScript Object Notation(JavaScript对象表示法),一种轻量级的数据交换格式,使用键值对和数组结构,人可读且机器易解析,是REST API的标准数据格式。
- Minify / 压缩
- 移除代码/数据中所有不必要的字符(空格、换行、注释)以减小体积的过程,常见于JS/CSS/JSON等前端资源。
- Beautify / 格式化
- Minify的逆操作,添加缩进、换行、空格使JSON结构清晰可读,也叫Prettify或Pretty Print。
- Escape / 转义
- 在特殊字符前加反斜杠(如 " 变 \",换行变 \n),将多行JSON转为可嵌入代码的单行字符串字面量。
- Unescape / 反转义
- 转义的逆操作,将 \"、\n、\\ 等转义序列还原为原始字符,恢复标准JSON格式。
- Trailing Comma / 尾逗号
- 对象或数组最后一个元素后面多余的逗号,JavaScript允许但JSON标准不允许,是最常见的JSON语法错误。
- Gzip / Brotli
- HTTP传输层通用压缩算法,与JSON Minify互补,Minify后再Gzip压缩效果最佳。
- Payload / 载荷
- API请求或响应中实际传输的数据体(通常是JSON格式),压缩Payload可直接降低带宽消耗。
- CodeMirror
- 浏览器端代码编辑器组件,本工具用它实现JSON语法高亮、行号、括号匹配等专业编辑体验。
JSON压缩与常见压缩方式对比
| 压缩方式 | 压缩层面 | 是否有损 | 可读性 | 适用场景 |
|---|---|---|---|---|
| JSON Minify | 内容层(去空白) | 无损 | 不可读(单行) | 生产API传输、配置精简 |
| JSON Beautify | 内容层(加空白) | 无损 | 高可读性 | 开发调试、人工阅读 |
| Gzip | 传输层 | 无损 | 不可读(二进制) | HTTP响应Content-Encoding |
| Brotli | 传输层 | 无损 | 不可读(二进制) | HTTPS静态资源压缩(比Gzip高20%) |
| MessagePack | 序列化层 | 无损 | 不可读(二进制) | 高性能RPC内部通信 |
JSON转义特殊字符对照表
| 原始字符 | 转义后 | 名称 | 说明 |
|---|---|---|---|
" | \" | 双引号 | JSON字符串必须转义的最常见字符 |
\ | \\ | 反斜杠 | 转义字符本身需要转义 |
换行 | \n | Newline | 多行字符串压缩为单行必须转义 |
制表符 | \t | Tab | 缩进Tab转义 |
回车 | \r | Carriage Return | Windows换行符CRLF中的CR |
/ | \/ | 斜杠 | JSON标准允许但不强制转义(可选) |
Authoritative References
- IETFJSON 官方规范 (RFC 8259)
- MDNJSON - MDN Web 文档
- WikipediaJSON - 维基百科
- JSON 压缩
- CSV 转 JSON
- JSON 转 CSV
- JSON Diff
- JSON Escape / Unescape
- JSON扁平化
- JSON 格式化
- JSON 生成器
- JSONPath 查询
- JSON 合并
- JSON 修复
- JSON Schema 校验
- JSON 排序
- JSON Stringify
- JSON 转 HTML
- JSON 转 Java
- JSON 转 Markdown
- JSON 转 SQL
- JSON 转 TOML
- JSON 转 TypeScript
- XML 转 JSON
- JSON 转 XML
- YAML 转 JSON
- JSON 转 YAML
- JSON 转 Python
- JSON 转 Go
- JSON 转 Rust
- JSON 转 Swift
- JSON 转 C#
- JSON 转 C++
- JSON 转 PHP