主頁 > 知識庫 > 在Shell命令行處理JSON數(shù)據(jù)的方法

在Shell命令行處理JSON數(shù)據(jù)的方法

熱門標(biāo)簽:呼叫中心市場需求 Linux服務(wù)器 百度競價排名 地方門戶網(wǎng)站 AI電銷 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) 服務(wù)外包

因為最近要處理一些 JSON 數(shù)據(jù)格式,所以在經(jīng)過一番搜索后 最終找到了 jq 這個很棒的工具。jq 允許你直接在命令行下對 JSON 進(jìn)行操作,包括分片、過濾、轉(zhuǎn)換等等。
讓我們通過幾個例子來說明 jq 的功能:
一、輸出格式化,漂亮的打印效果
如果我們用文本編輯器打開 JSON,有時候可能看起來會一團(tuán)糟,但是通過 jq 的 .(點)過濾器就可以立馬讓 JSON 的格式規(guī)整起來。
1.用文本編輯器打開后的樣子

2.用 jq 顯示的結(jié)果

復(fù)制代碼 代碼如下:
% jq . soundtag.json


二、快速查詢JSON數(shù)據(jù)
利用 jq 能夠以 key 作為關(guān)鍵字來對 JSON 作出快速查詢, 例如:
復(fù)制代碼 代碼如下:
% jq .cn soundtag.json

這將僅僅顯示 cn 鍵對應(yīng)的值。
jq 的鍵查詢也支持鏈?zhǔn)秸{(diào)用,如:
復(fù)制代碼 代碼如下:
% jq .cn[0].pNum soundtag.json

三、jq的管道操作
熟悉命令行的朋友可能都知道 | (管道)是一個非常強大的 武器。幸運的是,jq 也提供了對管道的支持。
復(fù)制代碼 代碼如下:
% jq '.cn[] | { pNum }' soundTag.json

在這里,我們使用管道過濾并構(gòu)造出 pNum 對象。
四、總結(jié)
如果你需要在命令行下處理 JSON,我強烈推薦 jq。jq 不僅 能夠滿足一般性的常見需求,更包含運算、內(nèi)置函數(shù)、條件比較、 變量聲明、自定函數(shù)等強大功能。對此感興趣的朋友,不妨通過 jq 的官方手冊 進(jìn)行學(xué)習(xí)。

PS:關(guān)于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat

在線json壓縮/轉(zhuǎn)義工具:

http://tools.jb51.net/code/json_yasuo_trans

C語言風(fēng)格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

您可能感興趣的文章:
  • hbase shell基礎(chǔ)和常用命令詳解
  • linux shell命令行選項與參數(shù)用法詳解
  • Shell腳本中實現(xiàn)切換用戶并執(zhí)行命令操作
  • linux shell腳本學(xué)習(xí)xargs命令使用詳解
  • Shell日志分析常用命令和例子
  • 25個好用的Shell腳本常用命令分享
  • Shell 命令執(zhí)行順序分析[圖]
  • Shell腳本test命令使用總結(jié)和實例
  • 用shell命令讀取與輸出數(shù)據(jù)的代碼
  • 提高你工作效率的shell命令總結(jié)大全

標(biāo)簽:崇左 衡水 銅川 蘭州 湘潭 湖南 仙桃 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Shell命令行處理JSON數(shù)據(jù)的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266