接口返回的不是 JSON:先确认编码再谈解析

3 阅读2分钟

接口返回的不是 JSON:先确认编码再谈解析

调试日志里看到一段奇怪的编码,十有八九是 base64。解一下就明白了。

如果只想看结论,可以直接跳到最后一段。

JSON 格式化与校验

格式化不只是为了好看。压缩状态的 JSON 在几百万字符时肉眼无法定位问题。

校验能提前发现常见错误:

  • 末尾多了逗号(最常见)

  • 单引号代替双引号

  • 中文没转义

  • 括号不匹配

命令行下python -m json.tool 够用,但带中文和超长内容时浏览器工具更顺手。

编码与解码

Base64:日志、配置里的长串基本都要解一下。注意标准 base64 和 URL-safe base64(- _)区别。

URL 编码:%20 是空格,%2F 是斜杠。排查接口参数问题经常用得上。

printf 'hello' | base64
printf 'aGVsbG8=' | base64 -d

其他几个高频场景

文本差异对比:改了配置文件但不知道改了哪几行,diff 一下最直观。

UUID 生成:数据库主键、日志追踪 ID。命令行有 uuidgen,但 Windows 上没有。

Cron 解析:定时任务没跑的时候,把表达式解析出下次执行时间最快定位。

IP 子网计算:给同事开通网段时,算清 CIDR 掩码比自己数快。

工具说明

上面几步里,Base64 编解码是最常用的那个。我在 知办库(www.zhibanku.com)上直接用:

Base64 编解码 → www.zhibanku.com/dev-tools/b…

这些工具最好放在手边,用浏览器打开就能用,不用装环境。知办库的做法是纯浏览器处理,文件不上传、不需要注册,打开页面就能用。同类小工具还有几十个,按分类找比较省事。

一点说明

以上是我自己流程里的做法,不一定适合所有人。如果你的场景有更好的顺序,欢迎在评论区补充。