mcpField
J
jq

jq

公式おすすめAgent-ready
jqlang.github.ioデータベース・データ36.0kjq3 日前に更新
リポジトリ公式サイト

jq について

ドメイン固有のクエリ言語を使用して JSON データを解析および処理します。条件ロジックを使用したフィルタリング、マッピング、集約、構造化データの再フォーマットをサポートしています。

主な機能

  1. 01パス式を使用して JSON から特定のフィールドまたはネストされた値を抽出
  2. 02条件ロジックで JSON オブジェクトと配列をフィルタリングと変換
  3. 03JSON、CSV、またはテキストなど複数の形式で結果を出力

活用シーン

  1. 01シェルスクリプトまたはパイプラインで API レスポンスから特定データを抽出
  2. 02JSON 形式の設定ファイルまたはログデータを解析
  3. 03他のコマンドラインツールと組み合わせて構造化データを変換・集約

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
brew install jq

インストール後にjq --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
cat data.json | jq .
02
jq -r ".items[].name" data.json

詳細

jq

jq は、JSON データを処理するための、sed、awk、grep などに似た軽量で柔軟なコマンドライン JSON プロセッサです。ポータブルな C で記述されており、実行時の依存関係がないため、構造化データの切り出し、フィルタリング、マッピング、変換を簡単に行えます。

ドキュメント

インストール

ビルド済みバイナリ

最新リリースはGitHub のリリースページからダウンロードしてください。 プラットフォーム固有のアセットは、アーカイブではなく単体の実行ファイルです。macOS と Linux では、 ダウンロードしたファイルの名前を jq に変更し、chmod +x jq で実行可能にしてください。

Docker イメージ

jq イメージをプルすると、Docker を使ってすぐに始められます。

Docker で実行する
例:package.json ファイルからバージョンを抽出する
docker run --rm -i ghcr.io/jqlang/jq:latest < package.json '.version'
例:ボリュームをマウントして package.json ファイルからバージョンを抽出する
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json
ソースからビルドする
依存関係
  • libtool
  • make
  • automake
  • autoconf
手順
git submodule update --init    # if building from git to get oniguruma
autoreconf -i                  # if building from git
./configure --with-oniguruma=builtin
make clean                     # if upgrading from a version previously built from source
make -j8
make check
sudo make install
sudo ldconfig                  # on Linux, if jq cannot find libjq.so

静的リンク版をビルドします:

make clean
make LDFLAGS=-all-static

最新の git バージョンではなく、リリース済みの tarball(リリースページから入手可能)をビルドする場合は、autoreconf の手順を省略してください。その場合、flex や bison も不要です。

クロスコンパイル

クロスコンパイルの詳細については、GitHub Actions のファイルとクロスコンパイルの Wiki ページをご覧ください。

コミュニティとサポート

ライセンス

jq はMIT ライセンスの下で公開されています。jq のドキュメントは Creative Commons CC BY 3.0の下でライセンスされています。 jq はオープンソースの C ライブラリ「decNumber」の一部を使用しており、同ライブラリは ICU ライセンスの下で配布されています。

コメント