今天要改 Docker 的两个配置 hostconfig.json 和 config.v2.json,打开一看,这个文件是单行的,在编辑器里面显示这是这样的:

代码都堆在一起,用 vim 格式化也没啥效果,编辑起来不是很方便。

Python 自带模块格式化 JSON

格式化 JSON 文件有很多方法,我最常用的就是 Python 自带的 json.tool 这个模块,只要安装了 Python 的电脑,都可以直接使用,这样就可以了:

python -m json.tool hostconfig.json > hostconfig-formatted.json

格式化以后再打开看一看:

这样编辑文件就方便多了。

与管道符一起使用

前面的例子我们还可以使用管道符(|)来实现,例如:

cat hostconfig.json | python -m json.tool > hostconfig-formatted.json

从 RESTful 接口直接获取数据并且格式化:

curl -s https://api.github.com/users/lewangdev | python -m json.tool

其它本地格式化工具

  • DevToysMac: MacOS 版的 DevToys or Windows,我是用 Windows 11 时候看到这个软件的,于是顺手搜了一下 MacOS 版的,也挺好用的。

  • jq: 除了像 sed 一样的处理 JSON 以外,还能把输出的 JSON 变成彩色的。
curl 'https://api.github.com/users/lewangdev' | jq '.'

输出这样效果: