Linux curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
后端大多数接口返回的都是结构化数据,例如json格式。如果直接curl请求,返回的结果就像下面打印的那样,杂乱无序。
本文所有示例使用macOS Big Sur默认终端实现。
杂乱无序的展示对于问题的排查以及数据的查询十分不便利,今天主要介绍几个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
响应就结构化展示如下:
jq
jq是一个灵活的命令行 JSON 处理器,也是最常用的JSON美化解决方案。
curl 'https://api.openweathermap.org/data/2.5/onecall?lat=40.1811&lon=44.5136&appid={api_key}' | jq
fx
fx是一个命令行 JSON 查看器和操作工具——在获取 JSON 后,可以手动点击浏览它:
当然通过fx .可以在非交互模式下展示响应:
curl 'https://api.openweathermap.org/data/2.5/onecall?lat=40.1811&lon=44.5136&appid={api_key}' | fx .
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