ターミナルでJSONを整形する方法|jqをHomebrewでインストール

ターミナルなどコマンドラインでJSONデータを扱う際に、JSONデータが整形されず見にくいと場合があると思います。そのような場合に、『jq』というツールを利用することで、JSONデータを整形することができます。

今回は、そのjqをMacのHomebrewを利用してインストールする方法と、コマンドラインでJSONデータを取得する際に、jqを利用する例となります。

Homebrew(ホームブリュー)は、macOSのパッケージ(ソフトウェアやライブラリ)をコマンドラインで一元管理できるツールとなります。Homebrewのインストール方法などは、以下のリンク先を参考にしてみてください。

jqをHomebrewでインストール

まずは、以下のHomebrewのコマンドで、jqをインストールします。

brew install jq

また、以下のコマンドで、Homebrewでインストールしたすべてのパッケージを確認できます。

brew list

jqのバージョン・ヘルプを確認

以下、インストールしたjqのバージョン、ヘルプを確認するコマンドとなります。

バージョンを確認

jq -V

ヘルプを確認

jq -h

jqを利用するコマンドの例

コマンドラインでJSONデータを取得する際に、jqコマンドを組み合わせて利用することでJSONデータを整形して取得できます。

基本的なコマンド

以下は、JSONデータを整形して取得する基本的なコマンドの例となります。

curl 'example.com/XXXXXXXXXXXX' | jq '.'

上記コマンドでは、JSONデータを取得するcurlコマンドの後に、jqコマンドの jq '.' を |(パイプ)でつないでいます。

指定した箇所のJSONを取得する例

指定した箇所のJSONデータを整形して取得することも可能です。

以下の例では、配列のJSONデータの中から、オブジェクトのキーがfooの箇所のみを取得します。

curl 'example.com/XXXXXXXXXXXX' | jq '.[] | {foo}' 

上記の例以外にも指定したJSONデータを取得する方法があります。詳しくは文末の参考サイトを確認してみてください。

JSON以外のデータが含まれている場合のエラー

jqを利用したコマンドの戻り値に、JSON以外のデータが含まれている場合、「Invalid numeric literal at line ●, column ●」のエラーが返されます。

その場合には、以下のコマンドで、JSONデータを整形して取得できます。

curl 'example.com/XXXXXXXXXXXX' | jq -R 'fromjson?'

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。