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

2023/09/19

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)"

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