3 ポイント 投稿者 GN⁺ 2024-03-20 | 1件のコメント | WhatsAppで共有
  • JSON 探索のための jnv_jnv_

    • jnv_jnv_ は、インタラクティブな JSON ビューアーと jq フィルターエディターを提供する。
    • jid と jiq に着想を得て設計されている。
  • 機能

    • JSON のシンタックスハイライト機能を備えたインタラクティブな JSON ビューアーおよび jq フィルターエディター。
    • 標準入力(stdin)、ファイル、URL から JSON を読み込める。
    • フィルターの自動補完機能をサポート。
    • 対応するフィルター種別: Identity、Object Identifier-Index、Array Index。
    • フィルター評価のためのヒントメッセージを提供。
  • インストール方法

    • Homebrew でのインストール: brew install ynqa/tap/jnv
    • Cargo でのインストール:
      • 必要要件: automake
      • インストールコマンド: cargo install jnv
    • jnv は、システムに jq をインストールしておく必要がない。Rust バインディングの j9 を利用しているため。
    • ファイルから読み込む: 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件のコメント

 
GN⁺ 2024-03-20
Hacker News のコメント
  • とてもクール、ちょっとした指摘:

    • 中規模の JSON(16MB)ではかなり遅い
    • フォントが暗すぎる(PR を提出済み)
    • パフォーマンスの良い代替を探しているときに、jq の機能はないものの高速な JSON ビューアである fx を見つけた(fx.wtf
  • 本当に面白そう - ぜひ試してみたい。

    • これまでは jqup を使ってインタラクティブなクエリをしてきたが、up の UX はあまり好きではない(特に長いクエリや非 ASCII データに対して)
    • 代替を探すことにとても関心がある
  • 本当に素晴らしい!! ラップトップを手にしたらすぐインストールする。

    • 似たようなものを作ったことがあるので、この記事にすぐ惹かれた
    • CLI でもっと多くのコマンドがインタラクティブなインターフェースを持てるように、このアイデアを一般化できるのか気になる
    • 長いあいだ「コマンドビルダー」を思い描いていて、カーソル位置に応じて適切なドキュメントを呼び出し、コマンドラインを編集しながら表示できるはずだ
  • 本当にクール! jless にとてもよく似ているように見える。

  • ブラウザや IDE で JSON 出力の中を検索できたらいいのに、と思うことがある。

    • とはいえ、その問題は時間をかけるほど差し迫ってはいない
  • Emacs を使っているなら jq-mode もある。

    • でも jnv のフィルター自動補完は本当に強力なキラー機能だ
    • jq-mode
  • 本当にクールで、jq を使うときにいつももどかしく感じていたのは、データを検索するまでどんなデータが得られるのか見えないことだった。

  • Sublime Text を使っているなら、それを可能にするプラグインがある。

    • 念のため言うと、そのプラグインは少し前に自分が書いた
    • Jq プラグイン
  • 代替の fx をみんなに知ってほしい。

    • mapfilterreduce など、もっと多くのことができ、意味論もすでに知っているものにより近い
    • YAML もサポートしている
    • fx を始める
  • とてもクール。無理なお願いかもしれないけれど、jq 構文の代わりに JSONPath を使う OjG でも動くように対応できるだろうか?

    • 手伝う意思はある
    • もし失礼だったなら申し訳ない