JSONデータをコマンド一発で自在に加工! Unix生まれの万能フィルター — jq

jqlang/jqC34.4k

jqは、JSON形式のデータをコマンドライン(黒い画面にコマンドを打ち込む操作画面)で手軽に加工できるツールです。Excelでデータを並べ替えたり特定の列だけ取り出したりするように、JSONデータから必要な情報だけを抜き出したり、形を変えたり、フィルタリングしたりできます。C言語で書かれており軽量で、他のソフトに依存しないため、どんな環境でもすぐに使えるのが大きな魅力です。プログラマーだけでなく、APIの戻り値を確認したいデザイナーや、設定ファイルを効率よく編集したい運用担当者など、JSONを扱うすべての人に役立ちます。オンラインで試せるプレイグラウンドも用意されているので、インストール前に気軽に体験できます。

🔥 なぜ話題?

近年のクラウドサービスやマイクロサービスの普及により、API(ソフト同士をつなぐ仕組み)のやり取りでJSON形式のデータを扱う場面が急増しており、jqはその作業効率を劇的に上げるツールとして長く支持されています。DevOps(開発と運用を統合する手法)や自動化パイプラインでの利用が増えたことも、継続的な注目の理由です。

💡 こう使える!

たとえば、Webサービスから取得した大量のユーザー情報(JSON形式)の中から、名前とメールアドレスだけを一覧で取り出したいとき、jqなら「echo '{...}' | jq '.users[] | {name, email}'」のようにコマンド一行で実現でき、わざわざプログラムを書く手間が省けます。

ユースケース: API(ソフト同士をつなぐ仕組み)から返ってきたJSONデータを素早く整形・フィルタリングして必要な情報だけを取り出す。

  • 依存ライブラリゼロで軽量・高速に動作するJSON加工ツール
  • ブラウザ上でお試しできるオンラインプレイグラウンドを提供
  • Docker・プリビルトバイナリ・ソースビルドなど多彩なインストール方法に対応
GitHubで見る →

Command-line JSON processor

技術情報

言語

C

ライセンス

NOASSERTION

最終更新

2026-04-08

スター数

34,379

フォーク数

1,761

Issue数

445

トピック

jq

技術詳細

アーキテクチャ・仕組み

  • ポータブルC(移植性の高いC言語)で記述されており、ランタイム依存ライブラリがゼロ
  • 正規表現ライブラリとしてOniguruma(鬼車)をビルトインで同梱可能
  • 数値処理にはオープンソースのCライブラリ「decNumber」を使用

主要な機能

  • JSONデータのスライス(切り出し)、フィルタリング、マッピング、変換
  • sedawkgrep のJSON版として、パイプラインに組み込める
  • 標準入力からのストリーム処理に対応

対応環境・プラットフォーム

  • プリビルトバイナリ: GitHubリリースページで各OS向けを配布
  • Docker: ghcr.io/jqlang/jq:latest として公式イメージを提供
  • ソースビルド: libtool, make, automake, autoconf があればビルド可能
  • 静的リンクビルド: make LDFLAGS=-all-static でポータブルなバイナリを作成可能
  • クロスコンパイル: GitHub Actions CIやWikiに手順が掲載されている

オンラインプレイグラウンド

ドキュメント

コミュニティ・サポート

  • Stack Overflow の jq タグで質問可能
  • Discordサーバーでコミュニティと交流可能

ライセンス・商用利用

  • ソースコード: MIT License(商用利用を含め自由に利用可能)
  • ドキュメント: Creative Commons CC BY 3.0
  • decNumberライブラリ部分: ICU License

ビルド時の注意点

  • Gitリポジトリからビルドする場合は autoreconf -igit submodule update --init が必要
  • リリースtarball(配布用アーカイブ)からビルドする場合は autoreconf 不要で、flex・bisonも不要
  • 旧バージョンからのアップグレード時は make clean を実行すること

インストール・クイックスタート

プリビルトバイナリ(すぐに使いたい場合)

GitHubリリースページから、お使いのOS向けのファイルをダウンロードするだけで使えます。

Dockerで使う場合

docker run --rm -i ghcr.io/jqlang/jq:latest < package.json '.version'

ソースからビルドする場合

依存: libtool, make, automake, autoconf

git submodule update --init
autoreconf -i
./configure --with-oniguruma=builtin
make clean
make -j8
make check
sudo make install

参考になる外部の関連記事

関連リポジトリ

neofetchの後継者!爆速でPC情報をオシャレに表示するシステム情報ツール — fastfetch

fastfetch-cli/fastfetchC21.5k

Fastfetchは、パソコンのスペック情報(OS、CPU、メモリ、GPUなど)をターミナル(黒い画面)上にカラフルかつ見やすく表示してくれるツールです。同じ目的で有名だったneofetchの後継とし

Linuxの心臓部 — すべてのサービスを統括するOS基盤ソフトウェア — systemd

systemd/systemdC16.1k

systemdは、Linux(パソコンやサーバーで使われるOS)の起動からサービス管理までを一手に担う、いわばOSの「司令塔」のようなソフトウェアです。パソコンの電源を入れた瞬間からネットワーク接続や

kubernetes/kubernetes

kubernetes/kubernetesGo120.6k

Kubernetesは、コンテナ化されたアプリケーションの自動デプロイ、スケーリング、管理を行うオープンソースのコンテナオーケストレーションプラットフォームです。複数のサーバー間でコンテナを効率的に配

プロキシ接続を美しく管理!Windows・Mac・Linux対応のネット環境切り替えツール — clash-verge-rev

clash-verge-rev/clash-verge-revTypeScript98.5k

clash-verge-revは、インターネットの接続方法を簡単に切り替えられるツールです。プロキシ(ネット接続の中継サーバー)の設定や管理を、見やすいグラフィカル画面で行えます。Windows、Ma

Vimを現代に再構築!拡張性と使いやすさを極めたテキストエディタ — neovim

neovim/neovimVim Script98.1k

Neovimは、プログラマーに長年愛されてきたテキストエディタ「Vim」を、現代の開発環境に合わせて大幅に改良したソフトウェアです。Vimの操作性はそのままに、他のプログラミング言語やツールとの連携を