jqコマンドのインストールと全データ整形

2023/12/12に公開

jq コマンドとは

JSONデータを操作するためのCLIツールでデータ抽出、変換、集計してくれるツールです。

curlコマンドでREST APIへリクエストを実行した際のレスポンスを確認する際などに利用します。

jqを使うメリットとしては、JSONデータを見やすく、使いやすくすることができることです。

jq のインストール手順

環境:Mac OS / zsh / homebrew

jqコマンドのインストールは非常に簡単です。

以下のコマンドをTerminalで実行すれば完了です。

brew install jq

インストールが完了したら、動作確認をしておくと安心です。

jq --version

# 結果
jq-x.x  # Version情報が表示されます

バージョンが出力されればjqのインストール完了です。

では、jqを利用してJSONオブジェクトの出力を比較してみましょう。
jq .で全JSONデータを取得し、整形します。

echo '{"name": "test" , "age" : 20}' | jq .

# 結果
{
  "name": "test",
  "age": 20
}

jqを使用せずに出力すると以下のように1行で出力されます。

echo '{"name": "my-name" , "age" : 20}' 

# 結果
{"name": "my-name" , "age" : 20}

ちなみに、jqを使うが整形させたくない場合は -cオプションを指定します。

echo '{"name": "my-name" , "age" : 20}' | jq -cでも上記と同じ結果になります。

プロパティの数が多数である場合や、プロパティの1つとしてJsonオブジェクトが定義されている場合などにjqを利用すると可読性が上がります。

# 1行の出力
{"name": "my-name" , "age" : 20, "address": {"pref" : "tokyo", "city":"meguro"} , "job" : "sales" }}

# jqで整形した出力
{
  "name": "my-name",
  "age": 20,
  "address": {
    "pref": "tokyo",
    "city": "meguro"
  },
  "job": "sales"
}

まとめ

JSONデータを確認する機会が多い方には非常におすすめです。

私は、APIデータの確認、Spring Bootのactuatorのレスポンスの確認時などに利用しています。

jq を使用できる場面は他にも多くありますし、要素数を取得したり配列操作をしたりと様々な使い方ができます。
たくさんの記事があったので、応用的な使い方をされる場合はそちらを参照してみてください。

jq の利用場面が増えれば追加で記事を書こうと思います。

Discussion