jid - JSONデータをインクリメンタルに検索できるコマンドラインツール

S 20180806 214531

JSONとはJavaScript Object Notationの略。その名前の通りJavaScriptと相性が良く、軽量でシンプルな構文であることから最近ではさまざまな分野で活用が進んでいます。

本日紹介する「jid」は、このJSON形式のデータをターミナルで操作することができるコマンドラインツールです。開発者simeji氏によって、Go言語で作られたオープンソースツールで、MITライセンスのもと配布されています。

サジェスト機能や自動補完機能を搭載し、JSONのデータをインタラクティブにフィルタリングしていくことが可能です。

以下具体的な使用方法を説明します。

jidのインストール方法

macOSの場合Homebrewを使用してインストールするのが簡単です。

brew install jid

他のOSの場合は、GitHubのリリースページからダウンロードできる実行ファイルや、「go get」でビルドしたファイルを使用できます。

go get -u github.com/simeji/jid/cmd/jid

jidの使用方法

jidの使用方法を直感的に理解するには、以下のサンプルを実行するのが簡単です。

echo '{"aa":"2AA2","bb":{"aaa":[123,"cccc",[1,2]],"c":321}}'| jid

プロンプトで例えば「.bb」と入力するとキーの"bb"に対応した要素に絞り込まれす。

[Filter]> .bb
{
  "aaa": [
     123,
     "cccc",
    [
       1,
       2
    ]
  ],
  "c": 321
}

さらに続けて「.bb.aaa[2]」とすると、"bb"の内部の"aaa"の2番目の要素に絞り込まれます。

[Filter]> .bb.aaa[2]
[
  1,
  2
]

Enterを押すと[1,2]が出力されてプログラムが終了します。

標準入力、標準出力を扱うのでUNIXの一般的なコマンドと組み合わせて使用することもできます。例えばcurlでダウンロードした情報を直接処理したり、ファイルから読み込んだりすることが可能です。

curl -s http://rdg.afilias.info/rdap/domain/example.info | jid
jid < file.json

jidはショートカットキーが準備されていて、さらに効率良く操作できます。

キー 説明
TAB / CTRL + I 利用可能なアイテムの表示と選択
CTRL + W カーソル直前の単語を削除
CTRL + U クエリ全体を削除
CTRL + F(→) カーソルを右に
CTRL + B(←) カーソルを左に
CTRL + A フィルターの最初に移動
CTRL + E フィルターの最後に移動
CTRL + J JSONバッファを下にスクロール
CTRL + K JSONバッファを上にスクロール
CTRL + G JSON場合ファの最後に
CTRL + L JSONバッファの先頭に
CTRL + L JSON全体またはキーのビューモード変更
ESC 候補ボックスを非表示に

viやemacsを彷彿とさせるキーバインドが採用されているので、開発者ならばそれほど戸惑うことなく使用できそうです。

またjigにはいくつかのコマンドラインオプションも準備されています。詳細は公式サイトでご確認ください。

まとめ

jidを利用すればJSONデータをターミナルから効率よく操作することができます。UNIXツールの流儀にのっとって作られているため、他のコマンドラインツールと組み合わせ柔軟な運用も可能です。

スポンサーリンク