入力モードを決める
JSONモードは連続した複数の値を読みます。-sは配列に集め、-Rは行を文字列にし、-Rsは改行を含む全文を一つの文字列にします。-nでもinputやinputsから入力を読むことはできます。
JSONツール
JSONまたはテキストを入力し、モードを選んで実行。標準出力と終了コードをそのまま確認できます。
表示は5,000文字ずつです。コピーと保存には結果全体を含みます。
入力とプログラムはブラウザーのメモリ内で処理され、履歴は保存されません。
-c -r -j -S -a -e、短縮形の組み合わせと対応する長い形式を使用できます。-s/-R/-nは入力モードで指定します。
jq 1.8.2・ローカルWebAssembly・手動実行
結果が古いため、コピーと保存は無効です。
POSIXシェル用です。入力をinput.jsonとして保存してください。コピーするコマンドに入力データは含まれません。
jq Playgroundは、API応答から必要な項目だけを取り出すプログラムの確認に使えます。元データを残したまま、条件に合うレコードと結果の構造を見比べられます。
jqフィルタの答えは一つの配列とは限りません。JSON入力から複数の値が出たり、何も出なかったりすることがあります。jqチートシートの式を試すときも、この違いが次の処理に影響します。
.people[] | select(.age >= 18) | .nameは成人の名前を個別に出力します。値の間の改行も残るので、後続コマンドに何が渡るかを確認できます。
jq Playgroundの-sは、プログラム実行前にJSON入力を一つの配列にまとめます。式を角括弧で囲む方法は現在の入力から出た結果を集めるため、処理の段階が違います。
JSONモードは連続した複数の値を読みます。-sは配列に集め、-Rは行を文字列にし、-Rsは改行を含む全文を一つの文字列にします。-nでもinputやinputsから入力を読むことはできます。
ファイル、サンプル、消去はプレビュー後に適用します。一度の取り消しで入力、式、設定、前の結果を復元できます。実行ボタンかCtrl/Cmd+Enterを使い、編集後は再実行してください。
ゼロ以外では書き出しを無効にします。-eのfalse、null、出力なしでも同様です。必要なら-eを外して再実行します。コピーしたPOSIXコマンドにはinput.jsonという入力ファイルが必要です。
selectは条件に合う値を残し、mapは変換結果を配列にします。サンプルでは年齢を数値で比較します。数字を含む文字列は数値とは異なる型です。
jq 1.8.2のWASMで、パイプ、reduce、def、再帰、try/catch、正規表現を実行します。よく使う式だけを再現した実装ではありません。ファイルモジュールの持ち込みには対応しません。
-rで引用符なしの文字列、-jで区切りなし、-cでコンパクトなJSON、-Sでキー順、-aでASCIIエスケープを指定します。対応する長いオプションも使用できます。
空白、先頭のBOM、NULを保持します。debugとstderrは診断欄に表示します。プレビューは5,000文字ずつ増え、書き出し対象は許可された結果全体です。
サンプルなら.people[] | select(.age >= 18) | .nameを使います。[]が要素を取り出し、selectが条件で絞り、.nameが名前を選びます。一つの配列が必要なら式全体を角括弧で囲みます。
出力オプションに-rを指定します。文字列のJSON引用符を除き、文字列内の空白は残します。オブジェクトや配列はJSONのままです。出力の区切りも不要なら-jを使います。
[.people[] | select(.age >= 18)]のように角括弧で囲みます。条件に合う値を集め、一件もなければ空の配列[]になります。出力が全くない状態とは異なります。
JSONを収集する-sを選び、.で配列を確認します。複数の配列を連結するなら-sとaddを組み合わせます。オブジェクトの結合は重複キーの扱いが別途必要です。
-Rで行を読み、単純な形式ならsplit("=") | {(.[0]): .[1]}から始めます。キーや値の空白は必要に応じて除きます。値にも等号がある場合は別の分割方法が必要です。
クエリの処理に問題がありましたか?