概述
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)'
將每個使用者的名字轉換為大寫。