JMin

JSON 压缩

压缩 JSON、转义 Unicode 并比较 UTF-8 字节

JSON 与数据
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月29日•最近复核:2026年9月29日
选项模式

粘贴 JSON,选择选项后点击执行压缩。修改输入或选项会清空旧结果;高级模式提供可核对的示例。

输出
压缩结果会显示在这里

字节统计基于文本的 UTF-8 编码,不是 gzip 或 Brotli 压缩后的网络流量。转义非 ASCII 字符可能增加体积。

JSON 仅在当前页面内存中处理。只保存显示选项,不保存输入或结果;统计不包含 JSON 原文。复制会将结果写入系统剪贴板。

本工具先解析再序列化 JSON。重复键只保留最后一个值,超过 JavaScript 安全整数范围的数字可能舍入,数字的写法也可能变化;非有限数会报错。需要精确保留的长数字应在源 JSON 中使用字符串。

排序保留数组顺序和自有键;JavaScript 的整数形式键仍按数值顺序输出。这不是用于签名的标准 JSON 规范化。高级模式的语法修正按钮只载入示例,不会修复你的任意输入。

页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

粘贴严格 JSON 后点击“执行 JSON 压缩”。可选递归排序保留 __proto__ 等自身属性及数组顺序;Unicode 转义将非 ASCII 代码单元表示为 JSON 转义,可能增加体积。字节数比较处理前后的 UTF-8 文本,不代表 gzip 或 Brotli 的网络传输体积。解析使用 JavaScript 数字:非有限结果会报错,但有限大整数仍可能失去精度,重复对象键仅保留最后一个值,数字原写法也可能变化。精确标识符请用带引号字符串。输入在当前页面处理,不保存为浏览器草稿;只可能保存显示设置。

失败输入样例库

错误预清洗导致数据被删

失败输入:用正则先删掉包含 `//` 的字符串内容。

失败表现:压缩前就发生语义丢失。

修复:禁止正则伪清洗,先走标准解析器校验。

场景配方

01

核对 Unicode 转义后的体积增长

目标:得到 ASCII JSON,同时保留解码后的字符串值。

  1. 粘贴 {"text":"你"}。
  2. 开启 Unicode 转义并点击“执行 JSON 压缩”。
  3. 比较 14 字节输入与 17 字节输出,再解析输出确认 text 仍是“你”。

结果:输出为 {"text":"\u4f60"}:增加 3 个 UTF-8 字节,约增长 21.4%。

02

嵌入式场景 JSON 体积压缩

目标:在不改语义前提下减小 JSON 负载。

  1. 压缩前先做严格 JSON 校验。
  2. 压缩后比对解析结果哈希一致性。
  3. 保留可读源文件用于后续排障。

结果:体积下降同时保持测试与运行一致。

生产可用片段

排序保留特殊键及数组顺序

json

{"__proto__":{"keep":true},"a":[2,1]}

快速决策矩阵

受传输/存储限制需要紧凑 JSON

建议选:先校验再压缩,并保留可读版追溯。

谨慎用:避免对原始文本做正则式伪压缩。

失败门诊(高频踩坑)

数字解析成非有限值

原因:1e400 符合 JSON 数字语法,但超出 JavaScript 有限数范围。

修复:工具会拒绝该值。精确标识符使用字符串;数值计算应选择适当的高精度解析器。

常见问题

压缩是否保留原文的所有数据写法?

不是简单删除空白,而是解析后重新序列化。字符串保留解码后的值;数字写法、重复对象键及整数精度遵循 JavaScript 解析规则。精确标识符请使用字符串。

Unicode 转义会增加体积吗?

会。{"text":"你"} 是 14 个 UTF-8 字节,{"text":"\u4f60"} 是 17 字节,工具会显示增加 3 字节。Emoji 通常输出为两个代理项转义。

排序后的 JSON 可以直接用于数字签名吗?

本工具排序保留自身键和数组顺序,但不是 RFC 8785 等规范化标准的实现。签名时应使用协议要求的序列化方式。

会保存或上传 JSON 草稿吗?

本工具不保存输入草稿,不调用远程处理接口,打开页面时删除旧输入草稿。复制会产生由你控制的剪贴板副本;网站统计选择另由隐私设置管理。

输入有注释或尾逗号怎么办?

压缩器会拒绝非 JSON 语法。JSON 格式化工具的独立自动修复操作支持部分此类问题,使用结果前需要检查改动。

继续浏览