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で詳しい使い方を確認すると、さらに強力な使い方が見つかるでしょう。 - カラー表示: ターミナルによっては自動的にカラー表示され、視認性が向上します。