Show HN: jnv: jq を使ったインタラクティブな JSON フィルター
(github.com/ynqa)-
JSON 探索のための jnv_jnv_
- jnv_jnv_ は、インタラクティブな JSON ビューアーと
jqフィルターエディターを提供する。 - jid と jiq に着想を得て設計されている。
- jnv_jnv_ は、インタラクティブな JSON ビューアーと
-
機能
- JSON のシンタックスハイライト機能を備えたインタラクティブな JSON ビューアーおよび
jqフィルターエディター。 - 標準入力(stdin)、ファイル、URL から JSON を読み込める。
- フィルターの自動補完機能をサポート。
- 対応するフィルター種別: Identity、Object Identifier-Index、Array Index。
- フィルター評価のためのヒントメッセージを提供。
- JSON のシンタックスハイライト機能を備えたインタラクティブな JSON ビューアーおよび
-
インストール方法
- Homebrew でのインストール:
brew install ynqa/tap/jnv - Cargo でのインストール:
- 必要要件: automake
- インストールコマンド:
cargo install jnv
- jnv は、システムに
jqをインストールしておく必要がない。Rust バインディングの j9 を利用しているため。
- Homebrew でのインストール:
-
例
- ファイルから読み込む:
jnv data.json - 標準入力から読み込む:
cat data.json | jnv
- ファイルから読み込む:
-
キーマップ
Ctrl + C: jnv を終了Tab: jq フィルターの自動補完- 矢印キーおよび
Ctrlの組み合わせ: カーソル移動とフィルター文字の削除 Enter: JSON ビューアーで展開/折りたたみを切り替えCtrl + P/N: JSON ビューアーですべての折りたたみを展開/折りたたみ
-
使い方
- jq を活用した JSON エクスプローラーおよびインタラクティブフィルター。
- 使用例:
jnv [OPTIONS] [INPUT] - オプション:
- 編集モードの指定: "insert" または "overwrite"
- JSON 表示形式の調整: インデントレベルの変更
- ヒント表示の有無: ユーザーに提案やガイドを示すヒントを表示するかどうか
- 初期展開深度の指定: JSON ノードの初期展開深度
- 候補リストの長さの制御: ユーザーがより効率的に選択できるよう候補リストの長さを調整
GN⁺の意見
- jnv_jnv_ は JSON データを簡単に探索・フィルタリングできるようにするツールで、特に大規模データセットを扱う開発者に有用。
- このツールは
jqの強力な機能をユーザーフレンドリーなインターフェースで提供し、JSON データ処理をさらに効率化する。 - jnv_jnv_ は Rust で実装されているため、性能と安定性の面で利点がある可能性があり、システムに
jqを別途インストールする必要がない点も長所。 - 類似機能を提供する他のツールとしては Postman や Insomnia のような API テストツールがあるが、これらは主に API テストに重点を置いており、jnv_jnv_ のような純粋な JSON 探索にはあまり特化していない。
- jnv_jnv_ を導入する際は、ユーザーインターフェースの直感性とフィルタリング機能の限界を考慮する必要があり、複雑な JSON 処理が必要な場合は
jqスクリプトを別途学習する必要があるかもしれない。
1件のコメント
Hacker News のコメント
とてもクール、ちょっとした指摘:
jqの機能はないものの高速な JSON ビューアであるfxを見つけた(fx.wtf)本当に面白そう - ぜひ試してみたい。
jqとupを使ってインタラクティブなクエリをしてきたが、upの UX はあまり好きではない(特に長いクエリや非 ASCII データに対して)本当に素晴らしい!! ラップトップを手にしたらすぐインストールする。
本当にクール!
jlessにとてもよく似ているように見える。ブラウザや IDE で JSON 出力の中を検索できたらいいのに、と思うことがある。
Emacs を使っているなら
jq-modeもある。jnvのフィルター自動補完は本当に強力なキラー機能だ本当にクールで、
jqを使うときにいつももどかしく感じていたのは、データを検索するまでどんなデータが得られるのか見えないことだった。Sublime Text を使っているなら、それを可能にするプラグインがある。
代替の
fxをみんなに知ってほしい。map、filter、reduceなど、もっと多くのことができ、意味論もすでに知っているものにより近いとてもクール。無理なお願いかもしれないけれど、
jq構文の代わりに JSONPath を使う OjG でも動くように対応できるだろうか?