cURL から JSON への変換ツール
cURL コマンドを貼り付けて、リクエストを JSON として構造化します。
curl コマンドを貼り付けて 「変換」を押すと、JSON オブジェクトに分解しますcURL を貼り付けこのツールでできること
ターミナル履歴、Stack Overflow の回答、ベンダーの API ドキュメントなどから cURL コマンドをコピーしてきて、自分のアプリや別のツールで扱える形に変換したいことはありませんか。この変換ツールは cURL コマンドから URL、メソッド、ヘッダー、認証情報、クエリパラメータ、ボディを取り出し、リクエスト全体を表す整理された JSON オブジェクトを出力します。
パーサーは 100% ブラウザ内で動作します — cURL コマンド、ヘッダー内の API キーやトークン、ボディのペイロードはどれもお使いのマシンから外に出ません。実務で使う cURL コマンドには、外に出したくない bearer トークンや Cookie、セッション ID が含まれていることが多いので、これは重要なポイントです。ここでの処理はすべて JavaScript で、他のブラウザ側ツールと同じ仕組みです。
行継続(\)、シングルクオートとダブルクオート、よく使われるすべてのフラグ(-X、--request、-H、--header、-d、--data、--data-raw、--data-urlencode、-u、--user)、そして JSON ボディに対応しています — ボディが有効な JSON であれば、文字列ではなくネストしたオブジェクトとしてパースして出力します。
使い方
3 ステップです。Chrome DevTools、Postman のエクスポート、Stack Overflow など、どこから持ってきた cURL コマンドでも動きます。
cURL コマンドを貼り付ける
左側のエディタにコマンドを貼り付けます。複数行(\ による継続あり)でも問題ありません。Chrome DevTools の 「cURL としてコピー」からそのまま貼り付けても、ブラウザヘッダー用に追加された大量の -H フラグはきれいにパースされます。
稼働中のセッションからリクエストを取得している場合、コマンドには有効なトークン付きの Authorization ヘッダーが含まれている可能性が高いです。パーサーはローカルで動くのでトークンがネットワークに出ることはありませんが、JSON 出力を他の人と共有するならトークンはローテーションしておきましょう。
「変換」を押す
緑色の 「変換」ボタンをクリックします。パーサーがコマンドを読み取り、リクエストを分解した JSON オブジェクトを構築します — method、url、queryParams、headers、auth、body(ペイロードが JSON ならパース済み)、bodyRaw(元の文字列)。
JSON を使う
出力をテストフィクスチャ、Postman へのインポート、OpenAPI のサンプル、リトライスクリプト、その他リクエストをデータとして保存しておきたい場所にコピーしてください。再ビルドもコマンドラインツールも不要です。
実際に時間を節約できる場面
DevTools の cURL を Postman リクエストに変換
Chrome の <strong>「cURL としてコピー」</strong>は巨大な 1 行を吐き出します。ここに貼り付けて構造化された JSON を取り出せば、フラグを 1 つずつ手で拾わなくても Postman、Insomnia、コードテンプレートでリクエストを組み立て直せます。
シェルスクリプトをコードに移行する
古いシェルスクリプトに、ヘッダーやボディがハードコーディングされた cURL 呼び出しが含まれているケース。それぞれを JSON に変換しておけば、Python、Go、TypeScript で同等の HTTP クライアント呼び出しを転記ミスなく再生成できます。
テストフィクスチャを作る
ブラウザから実際のリクエスト形状をキャプチャして JSON に変換し、結合テストやモックサーバーのフィクスチャとして配置できます。リクエストの形が本番とぴったり一致します。
API ドキュメントを書く
ベンダーから cURL の例を渡された場合。それを JSON に変換し、分解されたリクエストを社内ドキュメントや OpenAPI のサンプルに埋め込みます — 生の curl 文字列よりずっと読みやすくなります。
よくある質問
入力した cURL コマンドはどこかに送信されますか?
いいえ。パーサーはすべてブラウザ内で JavaScript として動きます。コマンドの内容 — URL、ヘッダー、認証トークン、ボディのペイロード — はサーバーに送信されません。DevTools の Network タブを開いた状態で「変換」を押せば、リクエストがゼロであることを確認できます。
Chrome の「cURL としてコピー」の出力に対応していますか?
はい。Chrome はブラウザヘッダーごとに -H フラグを並べ、バックスラッシュで行継続した長い 1 行を出力します。これらはすべて正しくパースされます。Firefox の「cURL としてコピー」や Safari の同等機能でも同じです。
--data-urlencode やフォームエンコードされたボディはどうなりますか?
対応しています。--data-urlencode key=value のペアはオブジェクトとして body にまとめられます。Content-Type: application/x-www-form-urlencoded のペイロードを 1 つの -d フラグで渡している場合は、ボディの文字列も URL デコードしてオブジェクト化するので、フォームのフィールドが見える形になります。
JSON ボディは正しく扱えますか?
はい。ボディのペイロードが有効な JSON(RFC 8259 の仕様に従うもの)としてパースできれば、出力の body キーにパース済みのオブジェクト/配列が入ります。元の生の文字列は必要なときのために bodyRaw に保持されます。
どのフラグを認識しますか?
よく使われるものに対応しています — -X/--request(メソッド)、-H/--header、-d/--data/--data-raw/--data-binary/--data-urlencode、-u/--user(Basic 認証)、-b/--cookie。認識できないフラグ(--insecure や -v など)は options 配列にまとめられるので、何が落ちたかが分かります。
非常に長いコマンドでも使えますか?
はい — パーサーは数キロバイトのコマンドでも問題なく扱えます。すべてローカルで動くので、アップロードもネットワーク遅延もレート制限もありません。
関連ツール
HTTP リクエストや JSON を扱っているなら、これらのツールも一緒に使えます。