#json #filter #jq #interactive #viewer #editor #data

app jnv

JSON 导航器和交互式过滤器,利用 jq

10 个不稳定版本 (3 个破坏性更新)

0.4.0 2024 年 8 月 13 日
0.3.0 2024 年 6 月 2 日
0.2.3 2024 年 5 月 26 日
0.2.2 2024 年 4 月 21 日
0.1.3 2024 年 3 月 24 日

#72文本编辑器

Download history 54/week @ 2024-05-03 34/week @ 2024-05-10 21/week @ 2024-05-17 233/week @ 2024-05-24 286/week @ 2024-05-31 73/week @ 2024-06-07 39/week @ 2024-06-14 24/week @ 2024-06-21 20/week @ 2024-06-28 23/week @ 2024-07-05 34/week @ 2024-07-12 10/week @ 2024-07-19 29/week @ 2024-07-26 9/week @ 2024-08-02 209/week @ 2024-08-09 79/week @ 2024-08-16

每月 327 次下载

MIT 许可证

44KB
877

jnv

ci

jnv 设计用于导航 JSON,提供交互式 JSON 查看器和 jq 过滤器编辑器。

jnv.gif

jidjiq 的启发。

特性

  • 交互式 JSON 查看器和 jq 过滤器编辑器
    • JSON 语法高亮显示
    • 使用 jaq 应用 jq 过滤器
      • 这消除了用户自己准备 jq 的需要。

[!重要] 从 v0.3.0 版本开始,已从 libjq Rust 绑定 j9 转换到 jq 克隆 jaq

此更改消除了管理包含外部工具(如 autoconf)的 C 相关依赖项的需要,从而简化了构建过程。但是请注意,一些过滤器目前尚不支持 jaq。有关更多详细信息,请参阅 GitHub 问题 #24

请继续提供有关此转换的反馈。

安装

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
# or
cat data.json | pixi exec jnv
# or
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
# or
jnv data.json

键盘映射

操作
Ctrl + C 退出 jnv
Tab jq过滤器自动完成
将光标向左移动一个字符
将光标向右移动一个字符
Ctrl + A 将光标移到过滤器的开头
Ctrl + E 将光标移到过滤器的末尾
退格键 删除光标位置处的过滤器字符
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 navigator and interactive filter leveraging jq

Usage: jnv [OPTIONS] [INPUT]

Examples:
- Read from a file:
        jnv data.json

- Read from standard input:
        cat data.json | jnv

Arguments:
  [INPUT]  Optional path to a JSON file. If not provided or if "-" is specified, reads from standard input

Options:
  -e, --edit-mode <EDIT_MODE>
          Edit mode for the interface ('insert' or 'overwrite'). [default: insert]
  -i, --indent <INDENT>
          Number of spaces used for indentation in the visualized data. [default: 2]
  -n, --no-hint
          Disables the display of hints.
  -d, --expand-depth <JSON_EXPAND_DEPTH>
          Initial depth to which JSON nodes are expanded in the visualization. [default: 3]
  -s, --limit-length <JSON_LIMIT_LENGTH>
          Limit length of JSON array in the visualization. [default: 50]
  -l, --suggestion-list-length <SUGGESTION_LIST_LENGTH>
          Number of suggestions visible in the list. [default: 3]
  -h, --help
          Print help (see more with '--help')
  -V, --version
          Print version

随时间变化的星星数量

Stargazers over time

依赖项

~8–22MB
~306K SLoC