linux JSON 解析命令 jq

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

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-DKjA6tTV-1591716391017)(media/15917106909681/15917130206482.jpg)]在這裏插入圖片描述

  • 使用jq命令後
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-uLbPtmWD-1591716391022)(media/15917106909681/15917131235486.jpg)]查看起來方便多了!
    查看起來方便多了

以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"
    }
  ]
}

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-5A9VPM5L-1591716391024)(media/15917106909681/15917146742190.jpg)]

  • 顯示json文件
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dQNwjBKx-1591716391026)(media/15917106909681/15917148122225.jpg)]

或者

cat testfile| jq
  • 指定key查詢
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fDDujV65-1591716391027)(media/15917106909681/15917149160166.jpg)]

  • 嵌套查詢
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Pv6s3hHS-1591716391033)(media/15917106909681/15917152186731.jpg)]

  • keys:獲取JSON中的key信息
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-qew0YqcK-1591716391035)(media/15917106909681/15917156351228.jpg)]

  • 標準化輸出,即不格式化爲帶引號的json 字符串
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IDtM6jb0-1591716391037)(media/15917106909681/15917157761916.jpg)]

  • has(key):判斷是否存在某個key
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LV8cTMzO-1591716391037)(media/15917106909681/15917158870285.jpg)]

  • length:查看輸出長度或個數
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WczMow9c-1591716391039)(media/15917106909681/15917159774675.jpg)]

  • 官網 :https://stedolan.github.io/jq/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章