主要特性
- 双模式:一键切换人性化<strong>格式化</strong>或紧凑<strong>压缩</strong>
- 严格JSON解析(RFC 8259 / ECMA-404)— 无效JSON会提前拒绝并显示清晰错误
- 美化打印模式标准化缩进和换行,便于阅读和审查
- 压缩模式去除无关空白和换行,同时保留数据值
- 可配置缩进大小(1–8空格)和缩进样式(空格或制表符)于格式化模式
- ⏎ 可选择在文件末尾始终插入最终换行符以保持差异整洁(`insertFinalNewline`)
- UTF-8安全:保留字符串内的Unicode码点和转义序列
- 100%客户端处理 — 您的JSON直接在浏览器中处理
🛠️ 如何格式化或压缩JSON for json-minifier
1. 粘贴或上传您的JSON
📥 将JSON粘贴到编辑器中或将<code>.json</code>文件拖放到放置区。工具使用严格JSON解析器验证输入 — 不允许注释和尾随逗号。
2. 选择格式化或压缩
🎛️ 使用操作选择器或<strong>格式化</strong>/<strong>压缩</strong>按钮选择模式。格式化模式美化打印并缩进;压缩模式生成紧凑的单行(或少行)表示。
3. 调整缩进设置(格式化模式)
📏 在格式化模式中,选择缩进大小(1–8)以及使用空格或制表符。您还可以决定是否在文件末尾插入最终换行符。压缩模式始终使用最紧凑的空白。
4. 复制或下载结果
📤 查看格式化或压缩后的JSON,然后复制或保存到文件。用于API响应、配置文件、文档或测试夹具中。
技术规格
核心转换(严格且安全)
应用于生成有效、符合标准的JSON输出的操作。
| 操作 | 应用情况 | 备注 |
|---|---|---|
| 严格JSON解析 | ✅ | 拒绝控制字符、注释、尾随逗号、NaN/Infinity/undefined及其他非标准标记。 |
| 压缩模式下的空白符移除 | ✅ | 标记间的空格、制表符和换行符被移除;字符串内容被精确保留。 |
| 格式化模式下的美观打印 | ✅ | 以可配置缩进和清晰换行重新输出JSON。 |
| 键顺序保留 | ✅ | 对象键顺序遵循解析/输出行为(在多数使用场景下功能保留)。 |
| 数字词素 | ✅ | 数字根据底层JSON引擎序列化;不额外添加任意舍入。 |
| Unicode处理 | ✅ | JSON解析器/字符串化器同时支持原始UTF-8字符和<code>\uXXXX</code>转义符。 |
兼容性与安全说明
工具在边缘情况和非标准模式下的行为表现。
| 情况 | 行为 | 建议 |
|---|---|---|
| 注释(<code>//</code>、<code>/* ... */</code>)或尾随逗号 | ❌ 作为无效JSON被拒绝 | 使用独立的JSONC预处理器或在使用本工具前移除注释。 |
| 大整数(> 2^53−1) | ⚠️ 解析为JSON数字 | 如需精确64位ID,请全程以字符串形式表示。 |
| 日期和自定义类型 | ✅ 作为字符串保留 | JSON无原生日期或自定义类型;使用者需自行解析。 |
| NDJSON(行分隔JSON) | ⚠️ 未特殊处理 | 使用NDJSON时,通过CLI工具分别压缩每行。 |
压缩模式下的典型体积缩减
实际节省空间取决于原始格式和注释密度。
| 输入样式 | 典型节省 | |
|---|---|---|
| 重度格式化(大量空格/换行) | 20%–40% | 常见于美化打印的配置文件和API响应。 |
| 适度格式化 | 10%–25% | 缩进良好但紧凑的JSON。 |
| 已压缩 | 5%–10% | 部分工具已输出最小化空白。 |
JSON格式化与压缩的CLI替代方案
对于大文件、自动化和CI/CD,可将此在线工具与行为相同的命令行工具结合使用。
Linux / macOS / Windows
jq — 压缩JSON
jq -c . input.json > output.min.json解析并将JSON压缩为每文档单行输出。
jq — 使用2空格缩进美化打印
jq . input.json > pretty.json以统一缩进重新格式化JSON,便于阅读。
Python
使用Python标准库压缩
python -c "import sys,json; print(json.dumps(json.load(sys.stdin), separators=(',',':')))" < input.json > output.min.json严格解析器;去除标记间的空白和换行。
使用2空格缩进美化打印
python -c "import sys,json; print(json.dumps(json.load(sys.stdin), indent=2))" < input.json > pretty.json以与在线工具相似的缩进格式化JSON。
Node.js
Node单行命令 — 压缩
node -e "const fs=require('fs');const s=fs.readFileSync(0,'utf8');process.stdout.write(JSON.stringify(JSON.parse(s)));" < input.json > output.min.json使用JSON.parse + JSON.stringify生成紧凑输出。
Node单行命令 — 美化打印
node -e "const fs=require('fs');const s=fs.readFileSync(0,'utf8');process.stdout.write(JSON.stringify(JSON.parse(s), null, 2));" < input.json > pretty.json以2空格缩进格式化JSON。
常见使用场景
网络与API性能
- 通过CDN提供前压缩JSON API响应。
- 缩小嵌入HTML或JS的配置负载。
- 使用紧凑JSON减少localStorage/sessionStorage占用空间。
CI/CD与数据管道
- 缓存或比较前规范化JSON产物。
- 对OpenAPI规范、清单和配置应用统一格式化。
- 上传到对象存储前压缩大型JSON数据集。
调试、日志与遥测
- 美化打印深度嵌套的JSON日志以调查事件。
- 压缩通过网络传输的日志负载以节省带宽。
- 为错误报告准备可读的API响应快照。
❓ Frequently Asked Questions
格式化或压缩JSON会改变我的数据吗?
JSON数据。格式化模式仅更改空白和缩进以使结构更易读。压缩模式会去除标记间无关紧要的空白,同时保持键、值、数组和对象的语义完全相同。是否支持注释或尾随逗号?
JSON(RFC 8259)并拒绝注释和尾随逗号。如果您使用JSONC,请使用单独的预处理器去除注释,然后在此处格式化或压缩生成的严格JSON。键会被重新排序吗?
JSON引擎如何发出对象。如果您的使用者依赖键顺序,请记录并添加测试,但请记住JSON本身未定义排序语义。如何避免丢失大整数?
JSON数字表示为IEEE-754双精度浮点数。对于大型ID或敏感数值(例如64位整数),请将它们编码为字符串端到端,以便在系统间永不丢失精度。处理真的在客户端进行吗?
Pro Tips
在代码库中保留未压缩、格式良好的JSON版本以便差异比较和代码审查;在生产环境中提供压缩JSON以获得更好性能。
记录关于键顺序或特殊数值处理的任何假设,并通过测试和检查工具强制执行。
将JSON压缩与HTTP压缩(GZIP/Brotli)结合使用,以获得最佳的传输节省效果。
对于重复性任务(例如清理OpenAPI规范),编写等效的CLI脚本(jq/Python/Node)并使用此在线工具进行快速一次性检查。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base64 解码器
- Base64 编码器
- C# 格式化器
- CSV 格式化器
- Dockerfile Formatter
- Elm 格式化器
- ENV 格式化器
- Go 格式化器
- GraphQL 格式化器
- HCL 格式化器
- INI 格式化器
- JSON 格式化器
- LaTeX 格式化器
- Markdown 格式化器
- Objective-C 格式化器
- Php Formatter
- Proto 格式化器
- Python 格式化器
- Ruby 格式化器
- Rust 格式化器
- Scala 格式化器
- Shell 脚本格式化器
- SQL 格式化器
- SVG 格式化工具
- Swift 格式化工具
- TOML 格式化工具
- Typescript Formatter
- XML 格式化工具
- YAML 格式化工具
- Yarn 格式化工具
- CSS 压缩器
- Html Minifier
- Javascript Minifier
- XML 压缩器
- HTTP 头部查看器
- PDF 转文本
- 正则表达式测试器
- 搜索引擎排名检查器
- Whois 查询