日常工作中,我们经常会遇到http请求会返回大量格式固定的数据,而我们只需要其中的一部分,那么怎么提取我们想要的字段呢。
这里会介绍一种用shell脚本处理http请求返回,或者处理json格式数据的方式。
这里我们用到了
jq
这个强大的命令行JSON处理器
- 使用
.data.list
选择JSON数据中的list数组。 - 使用
map(select(...))
对数组中的每个对象进行筛选,只保留那些element字段包含"/base"的对象。 - 使用
map(.num)
选择每个筛选后对象的num字段。 - 使用
add
将所有筛选出来的coverageClassTotalNumber相加,得到总和。 - 使用
-r
选项让jq输出原始文本,而不是JSON格式的字符串。
if - fi
:判断语句,-ne
:不等于的判断,echo
: 输出信息到屏幕语句,-z
:字符串长度为0的判断,
例如:有一个url,这个url的id参数是可支持修改传入的:
https://abcdefg.com/api?id=$id
他的返回为:
{
"status": 200,
"message": "success",
"data": {
"total": 80,
"list": [
{<