Open chen3feng opened 3 years ago
在用 curl 之类的命令调试 Web API 时,经常遇到返回的 JSON 是未格式化的情况,有一些办法可以得到格式化的结果。
curl -s http://my_url/ | python -m json.tool
定义一个 prettyjson 别名来简化:
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 是一个专用的命令行 JSON 处理器,和几乎每台非 Windows 机器都有的 python 不同,需要单独安装。
curl http://my_url/ | jq
不但能格式化而且自带语法高亮。
如果 JSON 希望分页显示,则可以搭配 less -R 管道来使用,不过需要注意由于 jq 的输出被重定向,需要加上 --color-output 参数来强行启用语法高亮:
less -R
--color-output
curl http://my_url/ | jq --color-output | less -R
当然 jq 的用途不止这一点点,有兴趣可以阅读其教程。
用命令行工具格式化 JSON 的方法
在用 curl 之类的命令调试 Web API 时,经常遇到返回的 JSON 是未格式化的情况,有一些办法可以得到格式化的结果。
通过 Python 内置的工具
定义一个
prettyjson
别名来简化:于是就可以更方便地:
如果希望语法高亮,则可以搭配 pygmentize 工具(需要安装)使用:
通过 jq 工具
jq 是一个专用的命令行 JSON 处理器,和几乎每台非 Windows 机器都有的 python 不同,需要单独安装。
不但能格式化而且自带语法高亮。
如果 JSON 希望分页显示,则可以搭配
less -R
管道来使用,不过需要注意由于 jq 的输出被重定向,需要加上--color-output
参数来强行启用语法高亮:当然 jq 的用途不止这一点点,有兴趣可以阅读其教程。
参考资料