首页/开发工具/JSON 指南

JSON 怎么格式化?美化、压缩、校验一次讲清

接口返回的 JSON 挤成一团、手工改完就报错、传输前想瘦身——这一页把 JSON 的格式化、压缩、校验、转 CSV 按场景排好,配着站内 2 个本地工具,全部在浏览器里完成,数据不上传。

一张表对号入座

你要做什么怎么做用这个
接口返回的 JSON 挤成一团,看不清结构一键美化,按对象/数组层级缩进对齐,嵌套再深也能一眼看清JSON 格式化
改完 JSON 心里没底,不知道能不能解析先校验语法,出错会精确提示第几行第几个字符附近有问题JSON 格式化
传输或存储前想给 JSON 瘦身压缩:去掉所有多余空白和换行,内容完全等价,体积通常小 30%-60%JSON 格式化
中文变成了 \u4e2d 这样的字符这是 Unicode 转义,内容没坏;点「反转义」即可还原成正常中文JSON 格式化
要把数据导进 Excel 里分析二维数组转成 CSV 表格,直接拿 Excel 或 WPS 打开JSON / CSV 互转

先认识 JSON:六种类型和三条铁律

JSON 只有六种数据类型

对象({})、数组([])、字符串、数字、布尔值(true/false)、null——就这些,没有第七种。接口里看到的时间、金额、ID,本质都是字符串或数字。搞清类型就能看懂任意一份 JSON 的结构。

键必须用双引号

{"a":1} 合法,{a:1} 和 {'a':1} 都不合法。这是 JSON 与 JavaScript 对象字面量最容易踩的差别,因为后两种写法在 JS 里都能跑。

不支持注释

// 和 /* */ 在 JS 里随便写,但 JSON 里一律不行。要写说明就单独加一个 "_comment" 字段,或者放到数据外面。

不认识 NaN 和 undefined

这两个是 JavaScript 的概念,JSON 没有。序列化时它们会变成 null 或直接被丢掉,看到字段「莫名消失」先想想这个。

为什么你的 JSON 老是报错

十有八九是下面五个原因之一,逐个对照能省掉大部分调试时间:

  1. 尾逗号:{"a":1,}——最后一个键值对后面多了一个逗号,JavaScript 允许,JSON 不允许。
  2. 单引号:{'a':1}——字符串和键都必须用双引号。
  3. 注释:复制配置时把 // 备注一起带进来了,JSON 不支持注释。
  4. 键没加引号:{a:1} 是从 JS 对象直接粘过来的,JSON 里键必须是字符串。
  5. 用了 NaN / undefined:JSON 没有这两个值,序列化时会变成 null 或被丢弃。

拿不准哪一行出的问题,把文本粘进JSON 格式化点「校验」,错误会精确提示第几行第几个字符附近,比肉眼逐行扫快得多。

格式化和压缩怎么选

同一份数据有两种形态,内容完全等价,用途相反:

三条实用建议

  1. 接口数据先校验再使用:拿到响应当场过一遍校验,比运行到一半崩在 JSON.parse 上好定位。
  2. 压缩只用于传输,落盘保留格式化版本:出了问题能直接打开看结构。
  3. 敏感数据只用本地工具:含 token、用户信息的响应别粘到陌生网站,本站工具全部在浏览器里跑,断网也能用。

常见问题

JSON 和 JS 对象有什么区别?
JSON 是纯数据格式:键必须双引号、不能写注释、不能放函数和 undefined;JS 对象是语言里的结构,写法宽松得多。两者用 JSON.parse(文本转对象)和 JSON.stringify(对象转文本)互相转换。
格式化后中文变成 \u4e2d 这样的字符,是坏了吗?
没坏。这是 Unicode 转义,与中文完全等价,很多接口和编辑器为了兼容性默认转义。在工具里点「反转义」就能还原成正常中文;反过来要转义也可以先格式化再交给接口。
JSON 文件很大,几十 MB 打不开怎么办?
浏览器处理超大文本会明显卡顿,建议单次不超过 5MB。更大的数据建议用 jq 这类命令行工具,先按需截取片段再格式化,不要整个文件硬扛。
数据会上传到服务器吗?
不会。格式化、压缩、校验全部在你的浏览器里完成,断网也能用。含 token、用户信息的接口数据可以放心处理,不必担心经过第三方服务器。

配着站内工具一起用

调试接口还会顺手用到这几个本地工具:时间戳转换(秒/毫秒与日期互转)、JSON / CSV 互转(数据导进 Excel)、文本差异对比(比对两份配置)、UUID 生成器。

相关导航