5
GitHub - ynqa/jnv: interactive JSON filter using jq
source link: https://github.com/ynqa/jnv
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
jnv is designed for navigating JSON,
offering an interactive JSON viewer and jq
filter editor.
Features
- Interactive JSON viewer and
jq
filter editor- Syntax highlighting for JSON
- Capable of accommodating various format
- Input: File, Stdin
- Data: A JSON or multiple JSON structures that can be deserialized with StreamDeserializer, such as JSON Lines
Auto-completion for the filter
- Hint message to evaluate the filter
Installation
Homebrew
See here for more info.
brew install jnv
Or install via Homebrew Tap:
brew install ynqa/tap/jnv
MacPorts
See here for more info.
sudo port install jnv
Nix / NixOS
See package entry on search.nixos.org for more info.
nix-shell -p jnv
Cargo
Requirements
cargo install jnv
jnv does not require users to install jq
on their system,
because it utilizes j9 Rust bindings.
Examples
cat data.json | jnv
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 |
Alt + B | Move the cursor to the previous nearest character within set(. ,| ,( ,) ,[ ,] ) |
Alt + F | Move the cursor to the next nearest character within set(. ,| ,( ,) ,[ ,] ) |
Ctrl + W | Erase to the previous nearest character within set(. ,| ,( ,) ,[ ,] ) |
Alt + D | Erase to the next nearest character within set(. ,| ,( ,) ,[ ,] ) |
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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK