網(wǎng)站開發(fā)電商快速網(wǎng)站推廣優(yōu)化
目錄
- 簡(jiǎn)介
- 首次用戶
- 功能特點(diǎn)
- 類似工具
- 進(jìn)一步探索
簡(jiǎn)介
jq 是輕量級(jí)的 JSON 處理工具,由 Stephen Dolan 于 2012 年使用 C 語言開發(fā)。
它的功能極為強(qiáng)大,語法簡(jiǎn)潔,可以靈活高效地完成從 JSON 數(shù)據(jù)中提取特定字段、過濾和排序數(shù)據(jù)、執(zhí)行復(fù)雜的轉(zhuǎn)換和計(jì)算等一系列任務(wù)。
首次用戶
-
使用
x jq
即可自動(dòng)下載并使用- 在終端運(yùn)行
eval "$(curl https://get.x-cmd.com)"
即可完成 x 命令安裝, 詳情參考 x-cmd 官網(wǎng)
- 在終端運(yùn)行
-
x-cmd 提供1分鐘教程,其中包含了 jq 命令常用功能的 demo 示例,可以幫你快速上手 jq 。
-
使用案例:
# 格式化輸出 JSON 數(shù)據(jù) x jq '.' ascii.json x ascii --json | x jq '.'# 從 JSON 中提取數(shù)組中第一元素,并以緊湊方式輸出 x ascii --json | x jq -c '.[1]'# 從 JSON 數(shù)據(jù)中獲取 "Description" 屬性的值 x ascii --json | x jq '.[1].Description'# 以原始字符串的形式輸出 x ascii --json | x jq -r '.[1].Description'# 修改 JSON 中的 "Description" 屬性的值 x ascii --json | x jq '.[1].Description="x-cmd"|.[1]'# 計(jì)算數(shù)組的長(zhǎng)度 x ascii --json | x jq '.| length'# 檢測(cè) JSON 中是否含有 "Acronym" 屬性 x ascii --json | x jq '.[1]|has("Acronym")'
- 網(wǎng)頁版快速試用。
- 官方的快速體驗(yàn)教程:該案例以 GitHub API JSON 返回的數(shù)據(jù)為處理對(duì)象,從中提取感興趣的數(shù)據(jù),并最終構(gòu)造一個(gè)新的 JSON 結(jié)果。這個(gè)例子的可操作性很強(qiáng),初始用戶可以一試。
功能特點(diǎn)
-
高效: jq 使用 C 語言開發(fā)的,并加入了不少優(yōu)化,在處理大型 JSON 數(shù)據(jù)時(shí)非常高效。
-
流式語言:jq 使用的語法種優(yōu)雅的流式處理語言,其用法靈活,內(nèi)置不少實(shí)用函數(shù)和運(yùn)算符,可以進(jìn)行字符串、數(shù)值和日期等數(shù)據(jù)類型的處理,也能勝任 JSON,CSV,TSV 的轉(zhuǎn)換工作。
類似工具
-
yq:一個(gè) YAML 處理工具。該工具采用 Go 語言編寫,設(shè)計(jì)參考 jq,支持 xpath 表達(dá)式,能處理 YAML、JSON、XML、CSV、TOML 等多種格式的數(shù)據(jù)。
-
dasel:一個(gè)支持眾多格式(JSON,CSV,YAML,XML)的命令行方案,我們認(rèn)為其功能稍遜于 jq,但勝在簡(jiǎn)單易用,能勝任大多數(shù)場(chǎng)景。
進(jìn)一步探索
- jq 源代碼 - jq 項(xiàng)目的源代碼托管在 GitHub,你可以在這里找到最新版本的 jq 和參與社區(qū)貢獻(xiàn)。
- jq 綜述 - x-cmd 團(tuán)隊(duì)對(duì) jq 生態(tài)和相關(guān)參考文章作了一個(gè)大綱式的綜述,歡迎大家閱讀。