Linux curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、​​ftp​​等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

工具|如何在shell中漂亮地打印JSON_JSON

 

后端大多数接口返回的都是结构化数据,例如json格式。如果直接curl请求,返回的结果就像下面打印的那样,杂乱无序。

本文所有示例使用macOS Big Sur默认终端实现。

工具|如何在shell中漂亮地打印JSON_json_02

杂乱无序的展示对于问题的排查以及数据的查询十分不便利,今天主要介绍几个JSON美化的工具,帮大家提高工作效率。

Python

相信大多数同学都安装有python(linux用户系统默认有安装Python),而python自带的有JSON工具,我们可以直接使用。

curl 'https://api.openweathermap.org/data/2.5/onecall?lat=40.1811&lon=44.5136&appid={api_key}' | python -m json.tool

响应就结构化展示如下:

工具|如何在shell中漂亮地打印JSON_数据_03

jq

jq是一个灵活的命令行 JSON 处理器,也是最常用的JSON美化解决方案。

curl 'https://api.openweathermap.org/data/2.5/onecall?lat=40.1811&lon=44.5136&appid={api_key}' | jq

工具|如何在shell中漂亮地打印JSON_命令行_04

fx

fx是一个命令行 JSON 查看器和操作工具——在获取 JSON 后,可以手动点击浏览它:

工具|如何在shell中漂亮地打印JSON_macos_05

当然通过fx .可以在非交互模式下展示响应:

curl 'https://api.openweathermap.org/data/2.5/onecall?lat=40.1811&lon=44.5136&appid={api_key}' | fx .

工具|如何在shell中漂亮地打印JSON_macos_06

 

jless

jless是一个命令行JSON查看器。使用它来替代less、jq、cat和当前用于查看JSON文件的编辑器的任何组合。它是用Rust编写的,可以作为单个独立二进制文件安装。

  • 干净的语法突出显示JSON数据,省略对象键周围的引号,关闭对象和数组分隔符,以及尾随逗号。
  • 展开和折叠对象和数组,以便可以看到数据的高位结构和low-level结构。
  • 大量vim-inspired移动命令用于高效地移动和查看数据。
  • 完整的regex-based搜索可以准确地找到你要查找的数据。

jless目前支持macOS和Linux。

curl 'https://api.openweathermap.org/data/2.5/onecall?lat=40.1811&lon=44.5136&appid={api_key}' | jless

工具|如何在shell中漂亮地打印JSON_json_07