jqコマンドでとりあえずこのパラメータよこせ!って思った時にやること

Kenji
Kenji

Engineer / 合同会社irori

公開日
カテゴリ
Web開発
jq

こんにちは。

皆さんはAPIを開発するときに、jqコマンドを使っていますか?

jqコマンドは、JSONを扱うためのコマンドです。

今回は、jqコマンドでとりあえずこのパラメータよこせ!って思った時にやることをご紹介します。

jqコマンドとは

jqコマンドは、JSONを扱うためのコマンドです。

以下のようなJSONを扱うことができます。

{
  "name": "Kenji",
  "age": 20,
  "hobby": [
    "programming",
    "reading"
  ]
}

jqコマンドのインストール

jqコマンドは、以下のコマンドでインストールできます。

brew install jq

jqコマンドの使い方

jqコマンドは、以下のように使います。

cat sample.json | jq '.name'
Kenji

こんな感じで、JSONのパラメータを絞り込んで取得したり、見やすく表示させることができます。

悩み

APIが返すJSONが複雑な場合、jqコマンドで絞り込むのがめんどくさい…

基本的にjqコマンドはレスポンスの返り値を厳密に指定して取得するのですが、レスポンスが複雑な場合、どのパラメータを取得すればいいのかわからないことがあります。

そんな時は以下のように指定することで、どこにあるかは気にせずkey名で取得することができます。

今回は、key名がnameのパラメータを取得したいので、以下のようにします。

cat sample.json | jq "..|.name?|select(.!=null)"

すごく便利だったので、備忘がてらのご紹介でした。

この記事を書いた人

Kenji
KenjiEngineer

合同会社iroriのエンジニア。Rails / Next.js / AWS を中心とした受託開発と、生成AIを使った開発フローの整備を担当しています。このブログでは、実際に自分の環境で試した手順や、詰まったポイントと解決までの記録を書いています。