json 文件是以人類可讀形式存儲(chǔ)數(shù)據(jù)的首選文件,但是當(dāng)它們被壓縮編寫(不帶縮進(jìn)及換行格式)時(shí),讀起來就不那么容易了。
當(dāng)然,即便是壓縮編寫,其依然是人類可讀的方式,但是保持一個(gè)良好的編寫格式,會(huì)更易讀。如下圖所示:
在本篇文章中,我們使用如下非結(jié)構(gòu)化的 json 文件作為演示的例子:
{"menu": {"id": "file","value": "File","popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"},{"value": "Open", "onclick": "OpenDoc()"},{"value": "Close", "onclick": "CloseDoc()"}]}}}
下面我們來分享幾個(gè)格式化輸出 json 文件的方法。
方法1:使用 jq 命令
jq 是一個(gè)命令行 json 處理器,允許用戶以各種方式修改 json 文件,允許用戶使用各種選項(xiàng)重新格式化 json 文件。
但是默認(rèn)情況下它沒有被安裝在系統(tǒng)中,需要先安裝。在基于 Debian 的系統(tǒng)中,可以使用如下命令安裝 jq:
sudo apt install jq
格式化 json 文件最直接的方法是在文件名前面添加一個(gè)點(diǎn) . :
jq . File.json
jq 允許用戶使用以下兩種方式格式化 json 文件:
- --tab 可以為每個(gè)縮進(jìn)添加一個(gè) tab 縮進(jìn),而不是默認(rèn)的兩個(gè)空格;
- --indent number 允許用戶為每個(gè)縮進(jìn)級(jí)別添加空格(最多8個(gè))。
比如,我們?yōu)槊總€(gè)縮進(jìn)添加 4 個(gè)空格,可使用如下方式:
jq . --indent 4 File.json
方法2:使用 json_pp
json_pp 是一個(gè) Perl 模塊,用于將輸入轉(zhuǎn)換為不同的輸出格式,也可以用戶格式化輸出 json 文件。
它需要借助管道重定向與 cat 命令才能工作,如下所示:
cat File.json | json_pp
方法3:使用 Python 格式化輸出 json 文件
Python 已經(jīng)在大多數(shù)系統(tǒng)中默認(rèn)安裝了,所以我們可以借助 Python 來完成我們的任務(wù)。
要格式化輸出 json 文件,可以使用 json.tool,如下所示:
python3 -m json.tool File.json
方法4:使用 json_xs
該方法不會(huì)在終端中顯示任何結(jié)果,但是會(huì)對(duì)文件本身進(jìn)行更改。這也是我們所列的 4 種方法中唯一一個(gè)可以直接保存更改的方法。
比如,我們將格式化后的文件保存到名為 Structured.json 的新文件中:
Structured.json
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210389 -
文件
+關(guān)注
關(guān)注
1文章
570瀏覽量
24822 -
JSON
+關(guān)注
關(guān)注
0文章
119瀏覽量
7011
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論