* 戳上方藍字「 開源先鋒 」關註我
推薦閱讀:
大家好,我是開源君!
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