linux JSON 解析命令 jq
背景
前兩天用終端curl請求服務端接口,返回json格式數據有一些問題,拿給開發看,開發說你怎麼不轉換成json格式,好看一點,正準備把json數據copy下來,粘貼到網頁端的json工具,開發說直接在終端看就可以了!於是給我一個命令jq;可惜電腦上沒有安裝,最終還是在網頁工具上看的! 下來後裝好jq,發現真好用!
jq安裝(mac):
brew install jq
使用方法:
- 以請求kuaidi100網站的接口爲例:
curl 'https://www.kuaidi100.com/query?type=zhongtong&postid=73127970405168&temp=0.4944945222451018&phone=' \
-H 'Connection: keep-alive' \
-H 'Pragma: no-cache' \
-H 'Cache-Control: no-cache' \
-H 'Accept: application/json, text/javascript, */*; q=0.01' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36' \
-H 'X-Requested-With: XMLHttpRequest' \
-H 'Sec-Fetch-Site: same-origin' \
-H 'Sec-Fetch-Mode: cors' \
-H 'Sec-Fetch-Dest: empty' \
-H 'Referer: https://www.kuaidi100.com/' \
-H 'Accept-Language: zh-CN,zh;q=0.9' \
-H 'Cookie: csrftoken=ISbZgKm21TlR_QfgJKs3gbMbDNIEeoI3CMKiKoCd3EA; WWWID=WWWC70A63EBE66F2B396165EECFFD635077' \
--compressed
- 使用jq命令後
查看起來方便多了
以json文件爲例,看看jq的用法:
將以下json保存爲testfile文件
{
"result": true,
"message": "成功",
"status": "200",
"data1": [
{
"kuaidinum": "606568155331",
"orgCode": "755",
"orgName": "始發地區域編碼",
"destCode": "755",
"destName": "目的地/到達網點",
"orgSortingCode": "始發分揀編碼",
"orgSortingName": "始發分揀名稱",
"destSortingCode": "目的分棟編碼",
"destSortingName": "目的分棟中心名稱",
"qrCode": "二維碼",
"orderNum": "快遞公司訂單號",
"templateurl": "http://www.kuaidi100.com/XXX"
}
],
"data2": [
{
"kuaidinum": "606568155332",
"orgCode": "755",
"orgName": "始發地區域編碼",
"destCode": "755",
"destName": "目的地/到達網點",
"orgSortingCode": "始發分揀編碼",
"orgSortingName": "始發分揀名稱",
"destSortingCode": "目的分棟編碼",
"destSortingName": "目的分棟中心名稱",
"qrCode": "二維碼",
"orderNum": "快遞公司訂單號",
"templateurl": "http://www.kuaidi100.com/XXX"
}
]
}
- 顯示json文件
或者
cat testfile| jq
-
指定key查詢
-
嵌套查詢
-
keys:獲取JSON中的key信息
-
標準化輸出,即不格式化爲帶引號的json 字符串
-
has(key):判斷是否存在某個key
-
length:查看輸出長度或個數
-
官網 :https://stedolan.github.io/jq/