Skip to content
/ jnv Public
forked from ynqa/jnv

interactive JSON filter using jq

License

Notifications You must be signed in to change notification settings

suchoudh/jnv

 
 

Repository files navigation

jnv

jnv is designed for navigating JSON, offering an interactive JSON viewer and jq filter editor.

demo

Inspired by jid and jiq.

Features

  • Interactive JSON viewer and jq filter editor
    • Syntax highlighting for JSON
  • Accept JSON from stdin, file, URL
  • Auto-completion for the filter
  • Hint message to evaluate the filter

Installation

Homebrew

brew install ynqa/tap/jnv

Cargo

Requirements

cargo install jnv

Note

jnv does not require users to install jq on their system, because it utilizes j9 Rust bindings.

Examples

cat data.json | jnv

Or

jnv data.json

Keymap

Key Action
Ctrl C Exit jnv
Tab jq filter auto-completion
Move the cursor one character to the left
Move the cursor one character to the right
Ctrl A Move the cursor to the start of the filter
Ctrl E Move the cursor to the end of the filter
Backspace Delete a character of filter at the cursor position
Ctrl U Delete all characters of filter
, Ctrl K Move the cursor one entry up in JSON viewer
, Ctrl J Move the cursor one entry down in JSON viewer
Ctrl H Move to the last entry in JSON viewer
Ctrl L Move to the first entry in JSON viewer
Enter Toggle expand/collapse in JSON viewer
Ctrl P Expand all folds in JSON viewer
Ctrl N Collapse all folds in JSON viewer

Usage

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>
                  Specifies the edit mode for the interface.
                  Acceptable values are "insert" or "overwrite".
                  - "insert" inserts a new input at the cursor's position.
                  - "overwrite" mode replaces existing characters with new input at the cursor's position.
          [default: insert]

  -i, --indent <INDENT>
                  Affect the formatting of the displayed JSON,
                  making it more readable by adjusting the indentation level.
          [default: 2]

  -n, --no-hint
                  When this option is enabled, it prevents the display of
                  hints that typically guide or offer suggestions to the user.

  -d, --expand-depth <EXPAND_DEPTH>
                  Specifies the initial depth to which JSON nodes are expanded in the visualization.
                  Note: Increasing this depth can significantly slow down the display for large datasets.
          [default: 3]

  -l, --suggestion-list-length <SUGGESTION_LIST_LENGTH>
                  Controls the number of suggestions displayed in the list,
                  aiding users in making selections more efficiently.
          [default: 3]

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

Stargazers over time

Stargazers over time

About

interactive JSON filter using jq

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 96.5%
  • Dockerfile 3.5%