首頁 > 文字處理與搜尋 > jq

jq: 處理 JSON 資料

jq 是一個強大的工具,用於在命令列中高效處理和轉換 JSON 資料。它用於過濾、切片、映射和轉換 JSON 資料,即使在複雜的 JSON 結構中也能輕鬆提取所需資訊。它經常與其他命令透過管道 (|) 一起使用。

概述

jq 接收 JSON 資料輸入,並以多種方式處理和輸出。它能從簡單的值提取到複雜的陣列/物件操作,是腳本環境中處理 JSON 不可或缺的工具。

主要功能

  • 解析和格式化 JSON 資料
  • 提取和過濾特定欄位
  • 操作陣列和物件
  • 轉換和重組資料

主要選項

輸入/輸出格式

過濾/轉換

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`jq` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

基本 JSON 格式化

echo '{"name": "Alice", "age": 30}' | jq .

將輸入的 JSON 以易於閱讀的形式輸出。

提取特定欄位

echo '{"name": "Bob", "age": 25}' | jq '.name'

從 JSON 物件中提取 'name' 欄位的值。

從陣列元素中提取欄位

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq '.[].name'

從 JSON 陣列中的每個物件提取 'name' 欄位。

輸出原始字串

echo '{"city": "Seoul"}' | jq -r '.city'

輸出提取的字串值,不帶引號。

選擇多個欄位並建立新物件

echo '{"name": "Charlie", "age": 40, "email": "charlie@example.com"}' | jq '{name: .name, age: .age}'

從現有物件中建立一個只包含 'name' 和 'age' 欄位的新物件。

根據條件過濾

echo '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]' | jq '.[] | select(.age >= 30)'

只過濾出年齡大於或等於 30 的使用者。

陣列元素轉換 (map)

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq 'map(.name | ascii_upcase)'

將每個使用者的名字轉換為大寫。


相同類別命令