こんにちは。
皆さんは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)"
すごく便利だったので、備忘がてらのご紹介でした。