クエリ文字列をJSONに変換
クエリ文字列は見分けやすい一方、符号化された文字、空の値、繰り返されるフィルター、アプリ固有のフラグが含まれると確認しにくくなります。このコンバーターは、コンパクトな転送形式を、読取り、コピー、比較、デバッグに利用できる構造化JSONオブジェクトへ変換します。パーセントエスケープをUTF-8として復号し、プラス記号を空白として扱い、空の値を保持します。同名のパラメーターは元の順序を保った配列になります。処理は決定的であり、リクエストの調査、テストデータ、ログ確認、開発ツールに安心してご利用いただけます。
無料で実行
圧縮されたパラメーターを確認しやすいオブジェクトにします
クエリ文字列はデータ転送のための形式であり、人が読みやすい形式ではありません。ブラウザーやクライアントは、検索語、複数の選択タグ、空の任意項目、国際文字を含む地名を、1本の短い行で送信することがあります。URLのパスより後ろの部分を、先頭の疑問符付きまたは疑問符なしでコンバーターに貼り付けてください。結果では、各パラメーターが個別のJSONプロパティーに分けられます。等号がないパラメーターも、等号の後ろが空のパラメーターと同様に、空文字列の値として保持されます。アンパサンドの間にある空の区間はパラメーターを含まないため無視されます。そのため、値や空欄を失わずにアプリの状態と出力を比較でき、カウンターで異なるキーの数と処理したペアの総数を確認できます。パーサーは送信先サーバーへ接続せず、業務上の型も推測しません。true、42、nullなども文字列のままです。この一貫した動作により、JSONはクエリが実際に運んだ内容を忠実に示します。
復号方法と重複キーの扱いをご確認ください
各キーと値は、一般的なWebフォームの規則に従って個別に復号されます。プラス記号は空白になり、%20のようなパーセントエスケープや複数バイトのUTF-8シーケンスは意図された文字になります。等号が区切りとして働くのは各ペアの最初の1個だけです。そのため、値に別の等号が含まれていても再分割されません。重複するキーは上書きされず、最初の値は文字列、2個目からは配列となり、以後の値は受信順に追加されます。たとえばtag=sale&tag=newは、sale、newの順のtag配列になります。フィルター、チェックボックス群、複数選択を同じ項目名で直列化するフレームワークの確認に便利です。不正なパーセントエスケープは部分的な結果を返さず入力エラーとなり、有効なUTF-8にならない符号化バイトも拒否されます。厳密に失敗させることで、もっともらしい結果が不正なリクエストを隠す問題を防ぎます。pair_countは重複を含むペア数、key_countは異なる復号済みキー数です。
テスト、ログ、リクエスト診断に結果をご活用ください
変換されたオブジェクトは、コードが処理する前にクエリの内容を把握したい場面で役立ちます。API開発では、失敗したリクエストのクエリ文字列を貼り付け、復号済みJSONをルートが想定するパラメーターと比較できます。自動テストでは、代表的な文字列を安定したデータに変換し、重複フィルター、国際文字、プラス記号、空の項目が期待どおりの形で届くかを検証できます。ログ調査でも、同じキーが何度も現れる長い符号化行より、構造化された形式のほうが読み取りや差分比較が容易です。本コンバーターはスキーマに基づく型変換を意図的に行いません。数値、真偽値、日付、角括弧による入れ子規則が必要な場合は、変換後にアプリ固有の検証を適用してください。汎用ツールが送信者の指定していない意味を推測することを防げます。JavaScript内部名に似たプロパティー名も安全にデータとして扱います。簡単な確認にはブラウザー版を、パイプラインやテスト環境で同じ決定的変換を繰り返す場合は$0.002のAPIをご利用ください。
活用例
APIリクエストをデバッグします
クライアントが送信した正確なクエリを復号し、キー、空の値、重複フィルターをルート仕様と比較できます。
安定したテストデータを作成します
代表的なクエリ文字列を決定的なJSON結果へ変換し、結合テストや回帰テストにご利用いただけます。
ログ内の符号化データを確認します
検索、リダイレクト、計測連携を調べる前に、符号化されたパラメーターを読みやすくします。
よくある質問
コンバーターの料金はいくらですか?
ブラウザー版は無料です。APIリクエストには公開基本料金の$0.002が適用されます。
先頭の疑問符を含めてもよいですか?
はい。入力は疑問符から始めることも、その後ろの文字列だけにすることもできます。
重複するパラメーター名はどのように表されますか?
キーが1回なら文字列値になり、繰り返されると元の順序を保った値の配列になります。
プラス記号とパーセント表記は復号されますか?
はい。プラス記号は空白になり、有効なパーセント表記はキーと値の両方でUTF-8として復号されます。
数値や真偽値はJSON型に変換されますか?
いいえ。スキーマを推測して送信データを変えないよう、パラメーターは文字列のまま返されます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/query-string-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}'const res = await fetch("https://api.kit.forhosting.com/dev/query-string-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/query-string-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/query-string-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/query-string-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.query_string_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |