jnv
jnv 是为导航 JSON 而设计的,提供交互式 JSON 查看器和 jq
过滤器编辑器。
特性
- 交互式 JSON 查看器和
jq
过滤器编辑器- JSON 语法高亮
- 使用 jaq 应用
jq
过滤器- 这消除了用户自行准备
jq
的需求。
- 这消除了用户自行准备
[!重要] 从 v0.3.0 开始,从 libjq Rust 绑定 j9 过渡到 jq 克隆 jaq。
这一变更消除了管理包含 autoconf 等外部工具的 C 相关依赖的需求, 从而简化了构建过程。但请注意,jaq 尚不支持某些过滤器。 更多详情,请参阅 GitHub 问题 #24。
请继续就这一过渡提供反馈。
- 能够适应各种格式
- 输入:文件、标准输入
- 数据:可以用 StreamDeserializer 反序列化的单个或多个 JSON 结构, 如 JSON Lines
- 过滤器自动完成
- 评估过滤器的提示信息
安装
Homebrew
更多信息请参见这里。
brew install jnv
或通过 Homebrew Tap 安装:
brew install ynqa/tap/jnv
MacPorts
更多信息请参见这里。
sudo port install jnv
Nix / NixOS
更多信息请参见 search.nixos.org 上的包条目。
nix-shell -p jnv
conda-forge
更多信息请参见这里。
pixi global install jnv
# 或
cat data.json | pixi exec jnv
# 或
conda install jnv
Docker
构建 (在不久的将来,镜像将在某些注册表上可用)
docker build -t jnv .
运行 (以下命令仅为示例。请修改要挂载的文件路径)
docker run -it --rm -v $(pwd)/debug.json:/jnv/debug.json jnv /jnv/debug.json
Cargo
cargo install jnv
示例
cat data.json | jnv
# 或
jnv data.json
按键映射
按键 | 动作 |
---|---|
Ctrl + C | 退出 jnv |
Tab | jq 过滤器自动完成 |
← | 光标向左移动一个字符 |
→ | 光标向右移动一个字符 |
Ctrl + A | 将光标移到过滤器开头 |
Ctrl + E | 将光标移到过滤器末尾 |
Backspace | 删除光标位置的过滤器字符 |
Ctrl + U | 删除过滤器的所有字符 |
↑, Ctrl + K | 在 JSON 查看器中将光标向上移动一个条目 |
↓, Ctrl + J | 在 JSON 查看器中将光标向下移动一个条目 |
Ctrl + H | 在 JSON 查看器中移动到最后一个条目 |
Ctrl + L | 在 JSON 查看器中移动到第一个条目 |
Enter | 在 JSON 查看器中切换展开/折叠 |
Ctrl + P | 在 JSON 查看器中展开所有折叠 |
Ctrl + N | 在 JSON 查看器中折叠所有展开 |
Alt + B | 将光标移动到前一个最近的字符集(. ,| ,( ,) ,[ ,] )内的字符 |
Alt + F | 将光标移动到后一个最近的字符集(. ,| ,( ,) ,[ ,] )内的字符 |
Ctrl + W | 删除到前一个最近的字符集(. ,| ,( ,) ,[ ,] )内的字符 |
Alt + D | 删除到后一个最近的字符集(. ,| ,( ,) ,[ ,] )内的字符 |
Ctrl + O | 将当前 JSON 内容复制到剪贴板 |
Ctrl + Q | 将当前查询复制到剪贴板 |
用法
JSON 导航器和利用 jq 的交互式过滤器
用法: jnv [选项] [输入]
示例:
- 从文件读取:
jnv data.json
- 从标准输入读取:
cat data.json | jnv
参数:
[输入] 可选的 JSON 文件路径。如果未提供或指定为 "-",则从标准输入读取
选项:
-e, --edit-mode <编辑模式>
界面的编辑模式('insert' 或 'overwrite')。[默认: insert]
-i, --indent <缩进>
可视化数据中使用的空格缩进数。[默认: 2]
-n, --no-hint
禁用提示显示。
-d, --expand-depth <JSON展开深度>
可视化中 JSON 节点初始展开的深度。[默认: 3]
-s, --limit-length <JSON限制长度>
可视化中 JSON 数组的限制长度。[默认: 50]
-l, --suggestion-list-length <建议列表长度>
列表中可见建议的数量。[默认: 3]
-h, --help
打印帮助(使用 '--help' 查看更多)
-V, --version
打印版本
## 随时间变化的星标数
[![随时间变化的星标数](https://yellow-cdn.veclightyear.com/2b54e442/3bbf451d-92de-424c-8dfb-f977102d0967.svg?variant=adaptive)](https://starchart.cc/ynqa/jnv)