logo
GeekFormat

JSON 压缩

免费在线JSON压缩工具,支持JSON单行紧凑压缩、JSON转义/反转义,内置智能语法修复自动处理尾逗号等常见错误,实时显示压缩率,CodeMirror编辑器带快捷键,纯前端处理。

相关推荐

适用场景

  • API开发中压缩JSON请求/响应体,减少HTTP传输字节数,提升接口响应速度(尤其是移动端弱网环境)
  • 上线前精简前端JSON配置文件、i18n语言包、Mock数据,减小静态资源体积
  • 在单元测试代码、Postman/curl命令中将JSON对象转义为字符串字面量嵌入代码
  • 从日志中复制的转义JSON(如\"key\":\"value\")一键反转义为可读JSON
  • 批量修复有尾逗号、单引号等语法错误的JSON文件,一键转为合法JSON
  • 将格式化的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快速体验,错误提示带修复按钮
  • 纯前端安全:所有运算本地浏览器执行,数据不上传服务器,断网可用

使用方法

  1. 将JSON内容粘贴到左侧编辑器,或点击上传按钮选择本地.json/.txt文件,也可点击「示例」按钮加载示例
  2. 默认自动执行压缩模式(400ms防抖),也可手动点击「压缩」按钮或按快捷键 Shift+Cmd/Ctrl+C
  3. 需要转义为代码字符串时按 Shift+Cmd/Ctrl+E 或切换模式为转义;需要还原转义字符串时按 Shift+Cmd/Ctrl+U
  4. 如果JSON有语法错误,底部会显示红色错误提示,有可修复错误时会出现「尝试修复」按钮,点击即可自动修正
  5. 底部状态栏实时显示压缩前/后字节数和压缩率百分比,确认结果后点击「复制」或「下载」按钮
  6. 左右面板间的分割条可拖动调整宽度,也可使用快捷键快速完成所有操作

常见问题

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压缩(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
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字符串必须转义的最常见字符
\\\反斜杠转义字符本身需要转义
换行\nNewline多行字符串压缩为单行必须转义
制表符\tTab缩进Tab转义
回车\rCarriage ReturnWindows换行符CRLF中的CR
/\/斜杠JSON标准允许但不强制转义(可选)

Authoritative References