溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux 終端上如何打印JSON文件

發布時間:2022-01-24 10:14:47 來源:億速云 閱讀:251 作者:小新 欄目:開發技術
# 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"}

1.2 lessmore 命令

對于大文件,建議使用分頁查看器:

less file.json
# 或
more file.json

q退出,空格鍵翻頁。

2. 格式化打印JSON

2.1 jq 工具(推薦)

jq是專門處理JSON的命令行工具,默認會格式化輸出:

jq '.' file.json

輸出效果:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

安裝jq:

# Debian/Ubuntu
sudo apt install jq

# RHEL/CentOS
sudo yum install jq

# Arch Linux
sudo pacman -S jq

2.2 python 的json.tool模塊

Python自帶JSON格式化工具:

python3 -m json.tool file.json

2.3 json_pp (Perl工具)

部分系統預裝了這個Perl工具:

json_pp < file.json

3. 高級JSON處理

3.1 使用jq過濾數據

提取特定字段:

jq '.name' file.json
# 輸出:"John"

多字段選擇:

jq '{name, age}' file.json

3.2 處理嵌套JSON

對于嵌套結構:

{
  "user": {
    "name": "Alice",
    "contacts": {
      "email": "alice@example.com"
    }
  }
}

訪問嵌套字段:

jq '.user.contacts.email' file.json

3.3 處理JSON數組

[
  {"id": 1, "name": "Item A"},
  {"id": 2, "name": "Item B"}
]

遍歷數組:

jq '.[].name' file.json

4. 彩色輸出方案

4.1 jq 彩色輸出

jq默認啟用彩色,若需強制啟用:

jq -C '.' file.json | less -R

4.2 使用bat工具

batcat的增強版,支持語法高亮:

bat file.json

安裝:

# Ubuntu
sudo apt install bat

# 別名設置(可選)
echo "alias cat='bat'" >> ~/.bashrc

5. 處理大型JSON文件

5.1 流式處理

使用jq的流模式:

jq --stream '.' largefile.json

5.2 使用ijson (Python庫)

適合內存受限環境:

python3 -c "import ijson; f=open('large.json'); [print(item) for item in ijson.items(f, 'item.path')]"

6. JSON轉換與輸出控制

6.1 壓縮輸出(單行)

jq -c '.' file.json

6.2 輸出為CSV

jq -r '.users[] | [.name, .age] | @csv' file.json

6.3 自定義縮進

jq --indent 4 '.' file.json

7. 實用技巧集合

7.1 從API獲取并格式化JSON

curl -s https://api.example.com/data | jq .

7.2 驗證JSON語法

jq empty file.json || echo "Invalid JSON"

7.3 提取所有鍵名

jq 'path(..)|[.[]|tostring]|join(".")' file.json

8. 替代工具推薦

8.1 fx - 交互式JSON查看器

安裝:

npm install -g fx

使用:

fx file.json

8.2 jless - 專用JSON查看器

類似less的瀏覽體驗:

cargo install jless
jless file.json

9. 常見問題解決

9.1 處理無效JSON

使用jq--raw-input模式:

grep -v '^#' broken.json | jq -R .

9.2 處理BOM頭

sed '1s/^\xEF\xBB\xBF//' file.json | jq .

9.3 內存不足問題

使用--seq處理換行分隔的JSON:

jq --seq '.' ndjson_file

10. 總結

在Linux終端處理JSON文件時:

  1. 簡單查看用catless
  2. 格式化首選jq
  3. 大文件考慮流式處理
  4. 交互式需求可嘗試fx
  5. 開發環境建議安裝bat增強顯示

掌握這些工具組合,可以高效地在命令行環境中處理各種JSON數據任務。

提示:將常用jq命令設為別名,如alias prettyjson="jq '.'"可提高效率。 “`

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女