Linux 學習筆記之(八)使用 jq 工具解析 json 字符串


一、背景

      在開發當中,為了運行時方便替換代碼,有時會直接使用 shell 來進行簡單邏輯的開發,在 腳本中 若通過 curl 調用其它服務的 restful 接口,需要對返回的 json 數據進行解析,此時可以 使用 jq 工具方便解析

二、知識

1、安裝

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

(1) 下載二進制文件

  下載地址:https://stedolan.github.io/jq/download/

 

 在這里可以選擇適配 要安裝 linux 操作系統的 jq 版本

    我的 linux 操作系統是 arm64 位的,所以選擇 了 jq 1.6 binaries for 64-bit 

 這里可以點擊  “ 64-bit” 選擇下載,若 linux 操作系統所屬服務器是 能夠上網的,可以直接使用  

wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64

 jq-linux64 是一個文件,對其進行重命名,叫  jq

(2) 下載源碼進行編譯安裝

(3) 使用 yum 安裝

yum install jq

3、基礎知識

(1) echo $a | ./jq .

以 json 格式展示 變量 a 中存儲的 json 字符串

(2)

三、示例

json 字符串

{
    "code":"0",
    "message":"success",
    "data":[
        {
            "vip":"10.19.115.188",
            "groupName":"10.19.115.188-主備",
            "groupId":0,
            "nodes":[
                {
                    "ipAddress":"10.19.115.202",
                    "haStatus":"master",
                    "runningStatus":"0"
                },
                {
                    "ipAddress":"10.19.115.189",
                    "haStatus":"backup",
                    "runningStatus":"0"
                }
            ],
            "allRunning":"0",
            "haCorrect":"0"
        }
    ]
}

(1) echo $a | ./jq .

 (2) echo $a|./jq '.data'    返回數組 

 

 (3)echo $a|./jq '.data|tostring'    返回字符串  (將 data 的值 數組轉為了字符串返回)

(4) echo $a |./jq '.code'   返回字符串

(5) echo $a |./jq '.data[]'    直接返回數組 data 中所有對象,以下截圖的結果 中 沒有 數組特有的標志 [] 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM