跳到主要内容
工具类本地处理 · 文件不上传

JSON 格式化器 · 美化 压缩 校验

在线 JSON 格式化 / 压缩 / 校验工具,支持自定义缩进、超大输入防卡顿、结构化错误提示。全部在浏览器本地完成,JSON 内容不会上传到任何服务器,敏感数据也能放心粘贴。

工具介绍

JSON 格式化器是日常开发最高频使用的工具之一:从 API 调试、日志排查到配置文件整理,JSON 合法性 + 可读性二合一的小工具不可或缺。本工具提供「美化」「压缩」「校验」三种模式,用浏览器原生 JSON.parse / JSON.stringify 实现,支持自定义缩进 0-8 空格,textarea 针对超大输入(> 5MB)使用 useDeferredValue 避免输入卡顿。所有处理都在浏览器本地完成 —— JSON 内容既不会上传服务器,也不会被日志记录,敏感 token / 内部接口响应也能放心粘贴进来调试。

使用方法

  1. 在顶部选择模式:「格式化」美化为多行缩进 · 「压缩」压成单行 · 「校验」只判断合法性不改内容
  2. 把 JSON 粘到输入框
  3. 结果区即时显示(非法时显示红色错误行,带精确位置)
  4. 「格式化」模式可调整缩进空格数(默认 2)

计算公式

算法本质:浏览器原生 JSON.parse(input) 解析成 JS 对象,再 JSON.stringify(obj, null, indent) 重新序列化。

美化(format):
  output = JSON.stringify(parsed, null, indent)
  indent 范围 [0, 8],超范围自动 clamp

压缩(minify):
  output = JSON.stringify(parsed)          // 不传第三参 → 无空白
  常用于把配置文件压成网络传输格式

校验(validate):
  不改内容;JSON.parse 成功返回 ok:true,失败返回 ok:false + error 字段

非法输入处理:
  try { JSON.parse } catch (err) { ok:false, error: err.message }
  不抛异常、不 alert;错误位置精确到字符下标(由浏览器 parse 本身给出)

常见场景

场景 1 · 接口返回的压缩 JSON 调试

后端返回一串单行压缩的 JSON 不好读,粘进来选「格式化」→ 立刻看清结构。失败还会告诉你「第 142 字符处缺逗号」。

场景 2 · 写前端配置想贴到 HTML attribute

data-props='{"a":1}' 这种字符串属性想把大 JSON 塞进去,需要先压成单行且转义引号。本工具「压缩」模式直接给你单行结果。

场景 3 · 检查第三方 webhook payload 是否合法

对方发来的 webhook body 疑似有问题,粘进来选「校验」→ 只看是否合法不改内容,不小心踩到 trailing comma / unquoted key 一眼报错。

常见问题

JSON 内容会上传到你们服务器吗?

不会。所有解析、格式化、校验都在你的浏览器本地完成,JSON 内容不会离开你的设备,敏感 token / 内部接口响应都可以放心粘贴。

支持多大的 JSON 输入?

没有硬性限制,浏览器内存多大就能解析多大(现代浏览器一般可到 512MB-2GB)。> 5MB 时输入可能稍卡,已用 useDeferredValue 优化输入响应。

解析失败时错误信息为什么不够精确?

错误信息直接来自浏览器原生 JSON.parse,包含字符位置但不总是包含行号。Firefox / Chrome / Safari 各家信息格式略有差异,我们不做二次包装避免误导。

能直接从粘贴板自动读入吗?

不支持自动读取剪贴板(需要用户授权权限、浏览器支持参差不齐)。手动 Cmd/Ctrl + V 粘贴更直观且不需要额外权限弹窗。

校验支持 JSON5 / JSONC(含注释的 JSON)吗?

不支持。本工具使用浏览器原生 JSON.parse,严格遵守 RFC 8259,不容忍 trailing comma / unquoted key / // 注释。JSON5 / JSONC 需要额外解析器,本工具不引入。

格式化后内容会被本地缓存吗?下次打开还在吗?

不会。本工具不读写 localStorage / IndexedDB,刷新页面或关掉标签即清空。如需保存请复制结果粘贴到你自己的文件里。

相关工具