chen3feng / article

本人的文章和笔记,充当懒人 Blog 来用。
9 stars 1 forks source link

用命令行工具格式化 JSON 的方法 #14

Open chen3feng opened 3 years ago

chen3feng commented 3 years ago

用命令行工具格式化 JSON 的方法

在用 curl 之类的命令调试 Web API 时,经常遇到返回的 JSON 是未格式化的情况,有一些办法可以得到格式化的结果。

通过 Python 内置的工具

curl -s http://my_url/ | python -m json.tool

定义一个 prettyjson 别名来简化:

alias prettyjson='python -m json.tool'

于是就可以更方便地:

curl -s http://my_url/ | prettyjson
prettyjson test.json

如果希望语法高亮,则可以搭配 pygmentize 工具(需要安装)使用:

curl -s http://my_url/ | prettyjson | pygmentize -g

通过 jq 工具

jq 是一个专用的命令行 JSON 处理器,和几乎每台非 Windows 机器都有的 python 不同,需要单独安装。

curl http://my_url/ | jq

不但能格式化而且自带语法高亮。

如果 JSON 希望分页显示,则可以搭配 less -R 管道来使用,不过需要注意由于 jq 的输出被重定向,需要加上 --color-output 参数来强行启用语法高亮:

curl http://my_url/ | jq --color-output | less -R

当然 jq 的用途不止这一点点,有兴趣可以阅读其教程

参考资料