クエリ文字列⇔JSON変換
a=1&b[]=2&b[]=3 のようなクエリ文字列をJSONに、JSONをクエリ文字列に変換します。先頭の ? や完全なURLを貼り付けても、クエリ部分だけを取り出します。URLを部品ごとに分解・編集したいときは URLパーサー を、JSONを整えるときは JSON整形 をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
使い方
- 「変換方向」でクエリ文字列からJSON、またはJSONからクエリ文字列を選びます。
- 「入力」欄に変換元を貼り付けます。URL全体を貼ってもかまいません。
- 配列の表記や型変換などのオプションを必要に応じて切り替えます。
- 「変換結果」欄に結果が表示されるので、「コピー」で取り出します。
注意事項
- クエリ文字列にはJSONのような型がないため、既定ではすべて文字列として出力します。数値や真偽値にしたいときは型変換をオンにします(007 や 1e3、15桁を超える整数は精度を守るため文字列のままです)。
- クエリ文字列の読み込みでは、b[] ・ b[0] ・ b=1&b=2 のどの配列表記も自動で判別します。JSONからの出力時だけ表記を選べます。
- オブジェクトを含む配列は、構造を保つため常に b[0][name] の添字表記で出力します。空の配列と空のオブジェクトは表現できないため出力されません。
- null は b のように = なしで出力し、型変換をオンにすると null に戻ります。
- 括弧付きキーの解釈は qs(Node.js)や PHP の記法に準じますが、実装ごとに細部が異なるため、実際の送信先の仕様も確認してください。
- 入力したデータはブラウザ内で処理され、サーバーには送信されません。
用語解説
クエリ文字列
URLの ? の後ろに続く、key=value を & でつないだ部分です。Webフォームの送信や検索条件の受け渡しに使われます。
パーセントエンコード
URLで使えない文字や特別な意味を持つ文字を、%E3%81%82 のように % と16進数で表す方式です。フォームの形式ではスペースを + で表すこともあります。
プロトタイプ汚染
__proto__ などの特殊なキーを悪用して、オブジェクトの共通の性質を書き換える攻撃です。クエリ文字列のネスト解析でよく問題になります。このツールはプロトタイプを持たないオブジェクトで処理するため影響を受けません。
よくある質問
b[]・b[0]・b=1&b=2 のどれで書かれた配列も読み込めますか?
読み込めます。クエリ文字列からJSONへの変換では3種類の表記を自動で判別し、どれも同じ配列になります。JSONからクエリ文字列へ出力するときだけ、表記を選びます。
数値や true が文字列の "1"・"true" になるのはなぜですか?
クエリ文字列には型の情報がないためです。「数値・true/false・null を型変換する」をオンにすると 1 や true に変換します。ただし 007 や 1e3、15桁を超える整数は元の値を守るため文字列のままです。
+ はスペースとして扱われますか?
既定では + をスペースに変換します(フォーム送信の形式)。URLのパス部分と同じように + を文字として残したいときは、オプションをオフにしてください。%20 は常にスペースです。
オブジェクトを含む配列は、なぜ b[0][name] になるのですか?
b[][name]=x&b[][name]=y のように書くと、要素の区切りが分からなくなるためです。構造を正しく戻せるよう、オブジェクトを含む配列は添字表記で出力します。
__proto__ というキーを入れても安全ですか?
安全です。プロトタイプを持たないオブジェクトに格納するため、共通のオブジェクトを書き換えることはなく、__proto__ も普通のキーとして出力されます。
このページをシェア
