シェルでJSON文字列を解析する方法

JSON文字列解析には、jqなどのツールが役立ちます。jqは、JSONデータ向けの軽量コマンドラインプロセッサです。簡単な例を紹介します。

JSON文字列 data.json があり、内容は次の通りです。

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

以下のコマンドを使用して JSON 文字列を解析できます。

cat data.json | jq '.name'

これはジョンを出力し、JSON文字列から名前フィールドの値が抽出されたことを示しています。

ネストしたJSONデータを処理するには、jqを使用することもできます。例えば、次のJSON文字列があるとします。

{
  "name": "John",
  "age": 30,
  "city": "New York",
  "hobbies": ["reading", "coding", "swimming"]
}

hobbies フィールドの値を取得するには、以下のコマンドを使用できます。

cat data.json | jq '.hobbies'

これは [“読書”,”コーディング”,”水泳”] を出力し、これはJSON文字列から配列のhobbiesフィールドを抽出することを意味します。

もちろんjqコマンドでは、フィルタリング・条件判断など、もっと多くの機能が提供されているため、その都度コマンドを使い分けることができる。

bannerAds