Linux 中的 JQ 指令使用實例
JSON 是一種資料表示格式,用於在應用程式的不同層之間儲存和傳輸資料;它將資料儲存在鍵:值對中。在文章中,我們將學習使用 JQ 指令在shell 中操作和處理 JSON 資料。
如何安裝JQ指令
#在Centos8中使用下方指令安裝jq
:
[root@localhost ~]# dnf -y install jq

文法
現在我們可以開始使用 JQ 指令,因為它已經成功安裝在我們的系統上,但首先,讓我們先來看看 JQ 指令的語法:
jq [options] [file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]
JQ 指令可以用多種不同的方式使用;它可以直接用於 JSON 文件,也可以結合其他幾個指令來解釋 JSON 資料。 JQ 命令可以與不同的過濾器一起使用,例如“.”、“|”、“,”或“.[]”過濾器來組織 JSON 資料。
JQ 指令也採用不同的選項作為參數,例如 –tab、–stream、–indent n、–unbuffered 和 -L 目錄選項。 JQ 指令的語法乍看之下可能很複雜,但閱讀整篇文章後您就會熟悉它。
如何使用 JQ 指令組織 JSON 資料
#JQ 指令過濾器最簡單和常用的特性。它們用於在將 JSON 資料列印到標準輸出時對其進行組織和美化。
在這個範例中,我們有一個名為 employee.json 的 JSON 文件,我們需要將資料輸出到標準輸出:
{"workers":{"name": "John Brooks","id": "003"}}
我們可以使用 cat 指令來顯示資料:
[root@localhost ~]# cat employee.json {"workers":{"name": "John Brooks","id": "003"}}

使用 cat 指令列印到標準輸出的資料是無組織且混亂的。我們可以使用 JQ 指令和「.」來組織這些數據,使用.
來篩選:
[root@localhost ~]# jq '.' employee.json { "workers": { "name": "John Brooks", "id": "003" } }

現在,數據變得更有條理、色彩豐富且更易於理解。從 API 存取資料時尤其需要此篩選器;API 中儲存的資料可能非常無組織且令人困惑。
如何使用 JQ 指令存取屬性
.欄位
篩選器和 JQ 指令可用於存取 shell 中的物件屬性。
如果我們只想存取單一屬性並將其列印到標準輸出,那麼我們可以使用.欄位
運算子。例如,要存取工人的屬性,我們可以使用以下命令:
[root@localhost ~]# jq '.workers' employee.json { "name": "John Brooks", "id": "003" }

我們也可以使用.欄位
運算子來存取屬性中存在的項目。要存取工人屬性中的名稱項,我們將使用:
[root@localhost ~]# jq '.workers.name' employee.json "John Brooks"

如何使用 JQ 指令存取陣列項目
#我們也可以使用 .[]
運算子來存取和輸出 JSON 檔案中陣列中存在的元素。對於這個例子,我們將修改我們的 JSON 文件,並添加下面內容:
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
看看employee.json檔案:
[root@localhost ~]# cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]

要输出 JSON 文件中存在的所有数组,我们将运行以下命令:
[root@localhost ~]# jq '.[]' employee.json { "name": "John Brooks", "id": "003" } { "name": "Randy Park", "id": "053" } { "name": "Todd Gray", "id": "009" }

要仅输出第二个数组,我们可以通过以下方式修改上述命令:
[root@localhost ~]# jq '.[1]' employee.json { "name": "Randy Park", "id": "053" }

请记住,数组从索引 0 开始的。
我们还可以使用 .字段
运算符访问数组中存在的属性。例如,如果我们想访问第三个数组中的 name 属性,那么我们将运行以下命令:
[root@localhost ~]# jq '.[2].name' employee.json "Todd Gray"

类似地,要访问数组中的所有名称属性,我们可以执行以下命令:
[root@localhost ~]# jq '.[].name' employee.json "John Brooks" "Randy Park" "Todd Gray"

总 结
JQ 命令用于将 JSON 数据转换为更易读的格式并将其打印到 Linux 上的标准输出。JQ 命令是围绕过滤器构建的,过滤器用于从 JSON 文件中仅查找和打印所需的数据。
以上是Linux 中的 JQ 指令使用實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

無法以 root 身份登錄 MySQL 的原因主要在於權限問題、配置文件錯誤、密碼不符、socket 文件問題或防火牆攔截。解決方法包括:檢查配置文件中 bind-address 參數是否正確配置。查看 root 用戶權限是否被修改或刪除,並進行重置。驗證密碼是否準確無誤,包括大小寫和特殊字符。檢查 socket 文件權限設置和路徑。檢查防火牆是否阻止了 MySQL 服務器的連接。

C語言條件編譯是一種根據編譯時條件選擇性編譯代碼塊的機制,入門方法有:使用#if和#else指令根據條件選擇代碼塊。常用條件表達式包括STDC、_WIN32和linux。實戰案例:根據操作系統打印不同消息。根據系統位數使用不同的數據類型。根據編譯器支持不同的頭文件。條件編譯增強了代碼的可移植性和靈活性,使其適應編譯器、操作系統和CPU架構變化。

Linux的五個基本組件是:1.內核,管理硬件資源;2.系統庫,提供函數和服務;3.Shell,用戶與系統交互的接口;4.文件系統,存儲和組織數據;5.應用程序,利用系統資源實現功能。

MySQL安裝報錯的解決方法是:1.仔細檢查系統環境,確保滿足MySQL的依賴庫要求,不同操作系統和版本需求不同;2.認真閱讀報錯信息,根據提示(例如缺少庫文件或權限不足)採取對應措施,例如安裝依賴或使用sudo命令;3.必要時,可嘗試源碼安裝並仔細檢查編譯日誌,但這需要一定的Linux知識和經驗。最終解決問題的關鍵在於仔細檢查系統環境和報錯信息,並參考官方文檔。

MySQL啟動失敗的原因有多種,可以通過檢查錯誤日誌進行診斷。常見原因包括端口衝突(檢查端口占用情況並修改配置)、權限問題(檢查服務運行用戶權限)、配置文件錯誤(檢查參數設置)、數據目錄損壞(恢復數據或重建表空間)、InnoDB表空間問題(檢查ibdata1文件)、插件加載失敗(檢查錯誤日誌)。解決問題時應根據錯誤日誌進行分析,找到問題的根源,並養成定期備份數據的習慣,以預防和解決問題。

MySQL無法直接在Android上運行,但可以通過以下方法間接實現:使用輕量級數據庫SQLite,由Android系統自帶,無需單獨服務器,資源佔用小,非常適合移動設備應用。遠程連接MySQL服務器,通過網絡連接到遠程服務器上的MySQL數據庫進行數據讀寫,但存在網絡依賴性強、安全性問題和服務器成本等缺點。

MySQL安裝失敗的原因主要有:1.權限問題,需以管理員身份運行或使用sudo命令;2.依賴項缺失,需安裝相關開發包;3.端口衝突,需關閉佔用3306端口的程序或修改配置文件;4.安裝包損壞,需重新下載並驗證完整性;5.環境變量配置錯誤,需根據操作系統正確配置環境變量。解決這些問題,仔細檢查每個步驟,就能順利安裝MySQL。

無法從終端訪問 MySQL 可能是由於:MySQL 服務未運行;連接命令錯誤;權限不足;防火牆阻止連接;MySQL 配置文件錯誤。
