Linux下處理json資料

2021-07-24 20:24:21 字數 1845 閱讀 3404

當我們在linux下需要處理json資料時,第一反應是用指令碼編寫乙個工具,這樣即耗時又不通用. 本文將介紹專門的命令列json處理工具jq.

ubuntu使用者可以直接使用下列命令安裝:

$ sudo apt-get install jq
詳細的安裝方法可以參考這裡.

首先構建乙個基本的字串作為示例 test.json:

}, 

}, }, }]}

$ cat test.json | jq '.name'

"中國"

$ cat test.json | jq '.province[0].name'

"黑龍江"

$ cat test.json | jq '.province.name'

"黑龍江"

"廣東"

"台灣"

"新疆"

$ cat test.json | jq '.province[0]'

, "name"

:"黑龍江"

}$ cat test.json | jq '.province'

, "name"

:"黑龍江"},

"name"

:"廣東"},

"name"

:"台灣"},

"name"

:"新疆"

}$ cat test.json | jq '.province[0] | '

, "name"

:"黑龍江"

}$ cat test.json | jq '.province[0] | '

keys用來提取json中的key元素:

$ cat test.json | jq 'keys'

[ "name",

"province"

]$ cat test.json | jq '.|keys'

[ "name",

"province"

]$ cat test.json | jq '.province[0]|keys'

[ "cities",

"name"

]$ cat test.json | jq '.province|keys'

[ "cities",

"name"][

"cities",

"name"][

"cities",

"name"][

"cities",

"name"

]

has用來判斷是否存在某個key:

$ cat test.json | jq 'has("name")'

true

$ cat test.json | jq '.province[0] | has("name")'

true

$ cat test.json | jq 'has("noname")'

false

若json串格式錯誤的話,可以直接使用jq執行,會報出具體錯誤.

有了這個工具.你就可以直接在命令列或者shell指令碼對json資料進行操作了.

- github:answerywj

- blog:

- email:[email protected]

- weibo:@answer不是答案

- csdn:answer不是答案的專欄

本作品採用知識共享署名-相同方式共享 4.0 國際許可協議進行許可。

linux下處理挖礦病毒的過程

症狀 伺服器cpu資源使用一直處於100 的狀態 處理步驟 1.查詢可疑程序 使用top命令,按程序的使用cpu率排序 鍵入top命令後,鍵入大寫字母p 找到程序號,使用kill 9 pid殺死程序,並刪除該程序號對應的檔案 3.檢視定時任務 cat var spool cron root 如果無法...

linux下處理txt中中文亂碼的方法

最近遇到.txt檔案在windows下中文顯示正常,然後我傳入到linux下時,中文顯示亂碼,英文本元和數字顯示正常。如下圖是在windows下的顯示 然而在linux下顯示如下 我已經設定utf 8格式 而在windows下中文的編碼一般為gbk,而linux下中文的編碼一般為utf8,所以在wi...

Oracle Swap居高不下處理

環境描述 system rhe5.3 x86 64bit oracle oracle 11.1.7.0 記憶體 8g 現像 現場運維發郵件回來前端應用緩慢,不時會丟擲異常!分析 通過檢視伺服器程序使用情況發現一些程序使用記憶體相當高,通過vmstat 查詢,系統層面已經大量使用swap交換分割槽了。...