% cat

JSONを超絶に読みやすくする jq コマンド

WebAPIを使っていると、よく出くわすJSON。XMLと違ってぱっと見ではかなり読みにくかったりしますよね。僕なんかはここ最近、APIの開発ばっかりなのでJSONとのにらめっこ状態。疲れたよパトラッシュ。

というわけで、読みにくくて憎いけど扱いやすいJSONをもっとフレンドリーな見え方にしてくれるコマンド jq を紹介。

今まではChromeの拡張機能でJSONを読んだりしていましたが、完全に jq に乗り換えました。

jqのインストール方法

Macの場合は方法は3つ。まずは、brewでインストール。

$ brew install jq

次は、GitHubにあるソースからビルド。

$ git clone https://github.com/stedolan/jq.git
$ cd jq
$ make && sudo make install

最後は、バイナリファイルをダウンロードして実行権限を与える。どれもサクッと入ります。Windowsにもバイナリが用意されているのでパスさえ通せば簡単に使えるかと思います。

jqの基本的な使い方

使い方も簡単で、curlと組み合わせるとこんなコマンドで一発。

$ curl 'http://example.com/api/hoge.json' | jq .


こんな感じで綺麗に表示してくれます。

jqのフィルタ

jqにはフィルタという機能があり、JSONの必要な部分だけ表示したりとかができます。大きなJSONファイルだと全部表示してもデバッグしにくい…って言うことが結構あるので助かりますね。

TwitterのJSONを例にすると

$ curl 'http://api.twitter.com/1/statuses/user_timeline/twitter.json' | jq '.[] | {id_str,text}'

これで、id_strとtextという値だけを表示します。


id_strだけ必要であれば

$ curl 'http://api.twitter.com/1/statuses/user_timeline/twitter.json' | jq '.[].id_str'

こんな感じ。[]にインデックス指定して、n番目のデータだけ表示とかもできます。詳しくはjqのマニュアルに記載されています。

最新記事

大量アクセスに耐え得る在庫管理システムの構成を考え実装してみた

皆さん「在庫管理」ってどうしてます?itemsテーブルに、stockカラム作ってdecrementしてますか? まぁ正直、それでも良い感じしますよね。楽だし何やってるかわかりやすい。 しかし! **超人気商品に超ア...

mmusasabi
2019年03月13日

kubernetes で Ruby on Rails を動かして kubern...

巷で話題の kubernetes ですが、とってもとってもとっつきにくいですよね そんな kubernetes ですが手元で動かすことができたので解説してみます (情報が間違ってたらごめんなさい! 🙇) 目標はこちら ...

tkhr0
2019年03月07日

初めて社内ISUCONを開催したらめっちゃ盛り上がった

みなさん ISUCON というものをご存知でしょうか? ISUCON とは... > 「お題となる Webサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル、それが ISUCON です。」 ...

ykyk1218
2019年02月26日