# Linux 終端上如何打印JSON文件
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,廣泛用于Web應用和API交互。在Linux終端中,我們經常需要查看或處理JSON文件。本文將詳細介紹多種在終端中打印JSON文件的方法,包括基礎命令、格式化工具以及高級處理技巧。
## 1. 使用基礎命令打印JSON
### 1.1 `cat` 命令
最簡單的打印文件內容方式是使用`cat`命令:
```bash
cat file.json
但原始JSON可能沒有縮進或換行,導致可讀性差:
{"name":"John","age":30,"city":"New York"}
less
或 more
命令對于大文件,建議使用分頁查看器:
less file.json
# 或
more file.json
按q
退出,空格鍵翻頁。
jq
工具(推薦)jq
是專門處理JSON的命令行工具,默認會格式化輸出:
jq '.' file.json
輸出效果:
{
"name": "John",
"age": 30,
"city": "New York"
}
# Debian/Ubuntu
sudo apt install jq
# RHEL/CentOS
sudo yum install jq
# Arch Linux
sudo pacman -S jq
python
的json.tool模塊Python自帶JSON格式化工具:
python3 -m json.tool file.json
json_pp
(Perl工具)部分系統預裝了這個Perl工具:
json_pp < file.json
提取特定字段:
jq '.name' file.json
# 輸出:"John"
多字段選擇:
jq '{name, age}' file.json
對于嵌套結構:
{
"user": {
"name": "Alice",
"contacts": {
"email": "alice@example.com"
}
}
}
訪問嵌套字段:
jq '.user.contacts.email' file.json
[
{"id": 1, "name": "Item A"},
{"id": 2, "name": "Item B"}
]
遍歷數組:
jq '.[].name' file.json
jq
彩色輸出jq
默認啟用彩色,若需強制啟用:
jq -C '.' file.json | less -R
bat
工具bat
是cat
的增強版,支持語法高亮:
bat file.json
安裝:
# Ubuntu
sudo apt install bat
# 別名設置(可選)
echo "alias cat='bat'" >> ~/.bashrc
使用jq
的流模式:
jq --stream '.' largefile.json
ijson
(Python庫)適合內存受限環境:
python3 -c "import ijson; f=open('large.json'); [print(item) for item in ijson.items(f, 'item.path')]"
jq -c '.' file.json
jq -r '.users[] | [.name, .age] | @csv' file.json
jq --indent 4 '.' file.json
curl -s https://api.example.com/data | jq .
jq empty file.json || echo "Invalid JSON"
jq 'path(..)|[.[]|tostring]|join(".")' file.json
fx
- 交互式JSON查看器安裝:
npm install -g fx
使用:
fx file.json
jless
- 專用JSON查看器類似less
的瀏覽體驗:
cargo install jless
jless file.json
使用jq
的--raw-input
模式:
grep -v '^#' broken.json | jq -R .
sed '1s/^\xEF\xBB\xBF//' file.json | jq .
使用--seq
處理換行分隔的JSON:
jq --seq '.' ndjson_file
在Linux終端處理JSON文件時:
cat
或less
jq
fx
bat
增強顯示掌握這些工具組合,可以高效地在命令行環境中處理各種JSON數據任務。
提示:將常用jq命令設為別名,如
alias prettyjson="jq '.'"
可提高效率。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。