* 戳上方蓝字「 开源先锋 」关注我
推荐阅读:
大家好,我是开源君!
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