当前位置: 欣欣网 > 码农

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