jq プレイグラウンド
JSONを貼り付け、jqフィルタを書くと結果が即座に表示されます。WebAssemblyにコンパイルした本物のjqを、すべてブラウザ内で実行します。
JSONはブラウザ内でWebAssemblyとして動作するjqによってローカルに処理され、アップロードされることはありませんが、秘密情報や本番データをツールに貼り付けるのは避けてください。
jqの代わりにJSONPathが必要ですか?JSONPath評価ツールをお試しください。
jq プレイグラウンド について
このjqプレイグラウンドでは、何もインストールせずにjqフィルタをJSONに対して実行できます。JSONドキュメントを貼り付け、.users | map(.name)、.[] | select(.active)、group_by(.type) のような式を入力すると、入力に応じて結果が表示されます。これはWebAssemblyにコンパイルした本物のjq 1.8.2なので、コマンドラインで使うのと同じフィルタ・関数・パイプ構文がここでも動きます。map・select・sort_by・group_by・to_entries・文字列補間などです。raw出力(-r)を切り替えると文字列結果から引用符を外し、コンパクト出力(-c)を切り替えると各値を1行にまとめます。jqのコンパイルエラーや実行時エラーも表示されるので、フィルタを素早く直せます。jqはページ内でWebAssemblyとして動作するため、貼り付けたJSONはデバイス上でローカルに処理され、サーバーへアップロードされることはありません。
機能
- 部分的な再実装ではなく、WebAssemblyにコンパイルした本物のjq 1.8.2を実行
- 変更をデバウンスしたライブ結果に加え、Runボタンと Cmd/Ctrl+Enter
- 引用符なしの文字列を出力するraw出力(-r)トグル
- 1値1行にするコンパクト出力(-c)トグル
- stderrから取り出したjqのコンパイル・実行時エラーを明確に表示
- クエリを埋めるクリック可能な例フィルタ(map・select・group_by・length・sort)
- 出力をワンクリックでコピー
- WASMは最初にフィルタを実行したときだけ読み込まれ、その後は温まったまま
jq プレイグラウンド の使い方
- JSONをJSONボックスに貼り付けるか入力します。
- フィルタボックスにjqフィルタを書きます。例:.users | map(.name)。
- 出力が更新されるのを見るか、Run / Cmd+Enter を押して即座に評価します。
- 別の整形が必要なら raw(-r)や compact(-c)を切り替えます。
- Copyをクリックして結果を取得します。
例
入力
{
"users": [
{ "name": "Ada", "active": true },
{ "name": "Linus", "active": false }
]
}
出力
[
"Ada"
]
フィルタ .users | map(select(.active)) | map(.name) はアクティブなユーザーだけを残し、その名前を返します。
よくあるエラーとトラブルシューティング
- jqが「Unexpected end of input」や「unexpected token」のような構文エラーを報告する。 — フィルタに不揃いの括弧やパイプがないか確認してください。たとえば .[ は .[] や .[0] であるべきです。jqは実行前に式全体を解析します。
- 「Cannot iterate over null」や「Cannot index ... with ...」。 — そのパスはデータに存在しません。.users[]? や .field // empty のようなオプショナルアクセスを使い、キー名がJSONと一致するか確認してください。
- 文字列の出力に引用符が付いたまま残る。 — それは通常のJSON出力です。raw出力(-r)をオンにすると引用符なしで文字列を出力します。シェルにパイプするときはたいていこれが望ましい挙動です。
- フィルタは正しそうなのに出力が空になる。 — フィルタが値を生成しなかった可能性があります(たとえば何にもマッチしなかったselect)。まず恒等フィルタ . でJSONが解析できることを確認し、そこから絞り込んでください。
よくある質問
- これは本物のjqを実行しますか。
- はい。WebAssemblyにコンパイルしたjqを実行するので、JavaScriptの再実装ではなく実際のjqエンジンです。フィルタ・組み込み関数・パイプのセマンティクスは、ターミナルで実行するjqと一致します。
- どのjqバージョンに対応していますか。
- jq-wasmビルド経由のjq 1.8.2です。group_by・to_entries・ltrimstr・\(...) による文字列補間など、jq 1.8で使える関数や構文がここで動きます。
- raw(-r)とcompact(-c)のトグルは何をしますか。
- raw出力(-r)は文字列結果を囲む引用符なしで表示し、jqの -r フラグに対応します。コンパクト出力(-c)は各JSON値を整形せず1行に表示し、jqの -c フラグに対応します。
- 貼り付けたJSONはどこかにアップロードされますか。
- いいえ。jqはこのページ内でWebAssemblyとして動作するため、貼り付けたJSONや書いたフィルタはデバイス上でローカルに評価され、サーバーへ送信されることはありません。
- なぜ最初の実行は少し遅いのですか。
- jqのWebAssemblyモジュールは、最初にフィルタを実行するときにダウンロードと初期化が行われるため、短い読み込み状態が見えます。その後はメモリに留まり、以降の実行は高速です。
- select・map・group_by を使うフィルタを実行できますか。
- はい。.[] | select(.active)、.users | map(.name)、group_by(.type) のような式はすべて動き、jqのフィルタリング・変換・集約の他の関数も使えます。
関連ツール
すべての ArrayKit ツール