當前位置: 妍妍網 > 碼農

18.3k star!一款功能強大,非常優雅的終端 JSON 檢視和處理神器!

2024-03-28碼農

* 戳上方藍字「 開源先鋒 」關註我

推薦閱讀:


大家好,我是開源君!

JSON 是一種輕量級的數據交換格式,在日常開發中可謂是無處不在。然而,在處理大型或復雜的 JSON 數據時,我們想要直觀地檢視 JSON 數據結構,或者快速地提取和過濾 JSON 數據,亦或是對 JSON 數據進行格式化和轉換。

今天開源君分享一款功能強大的終端 JSON 檢視器和處理器 - fx ,可以幫助我們輕松地處理各種 JSON 數據。

計畫簡介

fx 是一個用 Go 語言編寫的開源計畫,它提供了一系列強大的功能,包括:

  • 語法高亮和折疊功能,方便檢視 JSON 數據結構

  • JSON 路徑導航,快速定位數據

  • JSON 數據的過濾和提取

  • JSON 數據的格式化和轉換

  • 支持多種輸入和輸出格式

  • 效能特性

  • 互動式 JSON 檢視器:可以直觀地檢視和編輯 JSON 數據,方便進行數據分析和處理。

  • 用 Go 編寫:使用 Go 程式語言開發,具有高效能和效率。

  • 支持 JSON 流式處理:能夠處理大型的 JSON 數據,不受記憶體限制。

  • 單個自包含二進制檔:方便部署和使用,無需額外的依賴。

  • 支持 JSON 註釋:可以在 JSON 數據中添加註釋,便於說明和解釋數據結構。

  • 終端自動補全:提供命令列自動補全功能,提升使用者操作體驗。

  • 大字串預覽:支持預覽大型字串內容,避免顯示內容過長而混亂。

  • 支持 YAML 格式:除了 JSON 格式外,還支持 YAML 格式的數據處理。

  • 計畫安裝

    安裝方式很多樣,可以使用 brew 包管理工具進行安裝:

    brew install fx

    或者docker安裝

    docker run -it --rm -v .:/data:ro antonmedv/fx file.json

    二進制安裝

    在計畫release頁面下載對應的檔安裝

    或者使用命令

    curl https://fx.wtf/install.sh | sh

    windows系統的話,要安裝Go,準備好 Node.js 或者 Deno 環境。

    計畫使用

    基本用法如下:

    fx file.json

    fx 的一大亮點是 其互動模式 ,使用滑鼠或方向鍵進行導航,同時 fx 還支持折疊功能,方便你逐層檢視復雜巢狀的 JSON 結構。

    如,點選欄位可將其展開,右鍵或方向鍵向右可展開該欄位,按下 "e" 鍵可遞迴展開所有欄位,按下 "Shift + e" 鍵可將所有展開的欄位收起。

    搜尋功能

    按下 "/" 鍵後,你可以輸入搜尋模式來尋找特定的內容。按 "n" 鍵則可以跳轉到下一個匹配項。

    美化輸出

    有時我們想要將 JSON 數據格式化成易於閱讀的文本,只需在 fx 命令後面加上 "." 參數即可:

    echo'{"name": "world"}' | fx .

    也可以直接指定一個 JSON 檔作為參數:

    fx data.json .name

    自訂函式功能擴充套件

    可以透過 JavaScript 函式進一步擴充套件其功能,例如,如果你經常需要對數據進行 base64 編碼,就可以在 ".fxrc.js" 檔中定義一個 base64 編碼函式,然後在 fx 命令中直接呼叫:

    // .fxrc.js
    global.base64 = str => Buffer.from(str).toString('base64')

    有了這個函式,你就可以輕松地將 JSON 數據進行 base64 編碼並行送給後端 API:

    fx data.json '{value: base64(JSON.stringify(this))}' | curl -X POST

    原地編輯修改

    支持使用擴充套件運算子 (...) 來修改 JSON 物件,比如使用下面的命令,將一個 JSON 檔中的 "count" 值加 1 :

    echo'{"count": 0}' | fx '{...this, count: this.count+1}'

    主題支持,個人化體驗

    提供了多種主題,可根據自己的喜好來調整顏色和縮排方式。在環境變量 FX_THEME 設定為對應的主題編號即可。

    想要檢視所有可用的主題,你可以執行以下命令:

    fx --themes

    更多的計畫的細節功能,感興趣的小夥伴自行到計畫地址進行檢視:

    計畫地址:
    https://github.com/antonmedv/fx