jnv 项目简介
概述
jnv 是一款专为 JSON 数据导航设计的交互式工具,它不仅提供了一个功能齐全的 JSON 查看器,还集成了 jq
过滤器编辑器。受到了 jid 和 jiq 这些工具的启发,jnv 旨在让用户不用安装 jq
,就可以通过集成的 jaq 进行过滤操作。
核心功能
- 交互式 JSON 浏览器:用户可以通过直观的图形界面查看 JSON 数据,并配有语法高亮功能。
- 集成
jq
过滤器编辑器:通过使用 jaq,jnv 让用户无需自行准备jq
即可进行复杂的过滤操作。 - 灵活的格式支持:
- 支持从文件和标准输入(Stdin)读取数据。
- 能够处理单个或多个 JSON 结构,适用于类似 JSON Lines 这样的格式。
- 自动补全功能:
- 目前支持身份识别、对象标识符索引和数组索引的自动完成。
- 友好的提示信息:在输入过滤器时提供提示消息以帮助用户。
安装与使用
jnv 提供多种安装方式,适用于不同的平台和需求:
- Homebrew:可以通过 Homebrew 安装或通过 Homebrew Tap 扩展安装。
- MacPorts:通过 MacPorts 进行安装。
- Nix / NixOS:在 Nix 环境下使用特定命令进行安装。
- conda-forge:通过 conda 或者 pixi 安装。
- Docker:用户可以通过构建 Docker 映像来运行 jnv。
- Cargo:通过 Cargo 命令进行安装,适合喜欢使用 Rust 的用户。
使用示例
用户可以通过以下方式使用 jnv:
- 将 JSON 文件作为输入:
jnv data.json
- 从标准输入读取:
cat data.json | jnv
键盘快捷键
为了提高使用效率,jnv 提供了一系列的快捷键,如:
- 退出程序:
Ctrl + C
- 完成 jq 过滤器:
Tab
- 游览 JSON 列表:方向键和相关组合键
- 文本删除与复制:
Ctrl + U
删除、Ctrl + O
复制 JSON 内容等
版本更新
jnv 从 v0.3.0 版本开始,用 jaq 替换了原有的 libjq 绑定的 Rust 实现 j9,这一改变使得用户不再需要管理 C 相关的外部依赖,大大简化了构建流程。不过,某些过滤器功能尚未在 jaq 上实现,用户可以通过 GitHub 上的相关问题提供反馈。
总结
jnv 是一个功能丰富且易于使用的工具,非常适合需要处理 JSON 数据的用户。通过其多种功能和支持多平台的安装选项,jnv 为用户提供了极大的便利,无论是编写过滤器还是查看复杂的 JSON 结构,jnv 都能高效完成任务。