ホーム > テキスト処理・検索 > jq

jq: JSONデータ処理

jqは、コマンドラインでJSONデータを効率的に処理・変換するための強力なツールです。JSONデータのフィルタリング、スライス、マッピング、変換に使用され、複雑なJSON構造からでも目的の情報を簡単に抽出できます。パイプ(|)を介して他のコマンドと組み合わせてよく使用されます。

概要

jqはJSONデータを入力として受け取り、様々な方法で処理して出力します。単純な値の抽出から複雑な配列/オブジェクト操作まで可能で、スクリプト環境でJSONを扱う際に不可欠なツールです。

主な機能

  • JSONデータのパースとフォーマット
  • 特定のフィールドの抽出とフィルタリング
  • 配列とオブジェクトの操作
  • データの変換と再構築

主要オプション

入出力形式

フィルタリング/変換

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`jq` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

基本的なJSONフォーマット

echo '{"name": "Alice", "age": 30}' | jq .

入力されたJSONを読みやすい形式で出力します。

特定のフィールド抽出

echo '{"name": "Bob", "age": 25}' | jq '.name'

JSONオブジェクトから「name」フィールドの値を抽出します。

配列要素からのフィールド抽出

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq '.[].name'

JSON配列内の各オブジェクトから「name」フィールドを抽出します。

Raw文字列出力

echo '{"city": "Seoul"}' | jq -r '.city'

抽出された文字列値を引用符なしで出力します。

複数フィールドの選択と新規オブジェクト作成

echo '{"name": "Charlie", "age": 40, "email": "charlie@example.com"}' | jq '{name: .name, age: .age}'

既存のオブジェクトから「name」と「age」フィールドのみを含む新しいオブジェクトを作成します。

条件によるフィルタリング

echo '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]' | jq '.[] | select(.age >= 30)'

年齢が30以上のユーザーのみをフィルタリングします。

配列要素の変換 (map)

echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq 'map(.name | ascii_upcase)'

各ユーザーの名前を大文字に変換します。


同じカテゴリのコマンド