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はデバイス上でローカルに処理され、サーバーへアップロードされることはありません。

機能

jq プレイグラウンド の使い方

  1. JSONをJSONボックスに貼り付けるか入力します。
  2. フィルタボックスにjqフィルタを書きます。例:.users | map(.name)。
  3. 出力が更新されるのを見るか、Run / Cmd+Enter を押して即座に評価します。
  4. 別の整形が必要なら raw(-r)や compact(-c)を切り替えます。
  5. Copyをクリックして結果を取得します。

入力

{
  "users": [
    { "name": "Ada", "active": true },
    { "name": "Linus", "active": false }
  ]
}

出力

[
  "Ada"
]

フィルタ .users | map(select(.active)) | map(.name) はアクティブなユーザーだけを残し、その名前を返します。

よくあるエラーとトラブルシューティング

よくある質問

これは本物の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 ツール