Site cover image

Site icon image OSKA’s BLOG

記事にするまでもないアウトプット置き場

CLIでのJSON操作アレコレ

jq

あまりにも有名。
整形して色付きで出力、フィルタで絞り込む、一行出力、etc...
とりあえず小規模なJSONをザックリ見るときは jq にパイプラインで投げる。
AWS CLIのお供( --query オプション覚えるの面倒くさい人です、すみません)。

https://github.com/stedolan/jq

jid

jq のフィルタの書き方を中々覚えられない人向け。
インタラクティブにJSONを絞り込んでいけるのでオススメ。
そもそも jq のフィルタの書き方を知っていても、肝心のキー自体を知らないと絞り込むのが面倒なので、形式をよく知らないJSONに関しては jid で絞り込んだほうが楽だったりする。
Tabキーを押せば候補が出てくるのでそこそこ何とかなる。

https://github.com/simeji/jid

gron

多分 greppable JSON gron
JSONをキーとバリューが1行で表示されるように加工してくれるので、 grep が可能になる。

$ gron "https://api.github.com/repos/tomnomnom/gron/commits?per_page=1" | fgrep "commit.author"
json[0].commit.author = {};
json[0].commit.author.date = "2016-07-02T10:51:21Z";
json[0].commit.author.email = "[email protected]";
json[0].commit.author.name = "Tom Hudson";

fzf と組み合わせると効果的。
gron -u で元の形式に戻せるので | gron | fzf | gron -u とパイプを繋げばJSON内をあいまい検索できる。
エイリアスを貼っておくと吉。
JSONの形式のままの方が見やすい場合は大人しく jid を使う。

https://github.com/tomnomnom/gron

fzf

JSON操作とは直接関係ないけど gron 内で言及したので紹介。
あいまい検索できる。
似たようなところだと peco とか fzy とか。
インタラクティブなコマンドを自作するときのお供。

https://github.com/junegunn/fzf