Tips

CLIでJSONを簡単に整形・抽出する `jq` の基本

`jq` はコマンドラインでJSONデータを強力に処理するための軽量で柔軟なツールです。複雑なJSONファイルから特定のフィールドを抽出したり、データを整形して表示したりする際に非常に役立ちます。パイプと組み合わせることで、APIからのレスポンスを素早く確認・加工できます。

技術・言語・ツール: jq

jq はコマンドラインでJSONデータを強力に処理するための軽量で柔軟なツールです。複雑なJSONファイルから特定のフィールドを抽出したり、データを整形して表示したりする際に非常に役立ちます。パイプと組み合わせることで、APIからのレスポンスを素早く確認・加工できます。

CLIでJSONを簡単に整形・抽出する jq の基本

jq はJSONデータに対するsedのようなものです。入力されたJSONから特定の要素を抽出したり、構造を変更したり、人間が読みやすい形に整形したりできます。特にAPIのレスポンスやログファイルなど、CLIでJSONを扱う際にその威力を発揮します。

コード例

1. JSONを整形して表示する

echo '{"name":"Alice","age":30,"city":"New York"}' | jq '.'

出力:

{
  "name": "Alice",
  "age": 30,
  "city": "New York"
}

2. 特定のフィールドを抽出する

echo '{"name":"Bob","age":25,"interests":["coding","gaming"]}' | jq '.name'

出力:

"Bob"

3. ネストされたフィールドや配列の要素を抽出する

echo '{"user":{"id":101,"profile":{"name":"Charlie"}},"status":"active"}' | jq '.user.profile.name'

出力:

"Charlie"
echo '{"items":[{"id":1,"name":"Apple"},{"id":2,"name":"Banana"}]}' | jq '.items[0].name'

出力:

"Apple"

注意点やおすすめポイント

  • インストール: macOSでは brew install jq、Linux (Debian/Ubuntu) では sudo apt-get install jq で簡単にインストールできます。
  • APIレスポンスの処理: curl などで取得したAPIのJSONレスポンスを jq にパイプで渡すことで、読みやすく整形したり、必要な情報だけを抽出したりするのに非常に便利です。
    curl -s 'https://api.github.com/users/octocat' | jq '.name, .blog'
  • 豊富なフィルター: jq は単なる抽出だけでなく、フィルタリング、マッピング、結合など、非常に多くの機能を備えています。公式ドキュメントや man jq で詳しい使い方を確認すると、さらに強力な使い方が見つかるでしょう。
  • カラー表示: ターミナルによっては自動的にカラー表示され、視認性が向上します。