100% ローカル — データがブラウザの外に出ることはありません

JSONをクエリ文字列に変換|URLの疑問符の後ろに貼るだけ

平たいJSONオブジェクトをURLのクエリ文字列に変換します。パーセント符号化は済んでおり、配列は繰り返しのキーになります。URLの疑問符の後ろに貼るだけで動きます。

高速 プライベート Cookieゼロ

JSON 入力

Query String 出力

このツールの動作

平たい JSON オブジェクトが、URL の ? より後ろの部分になります。

{ "q": "café au lait", "page": 2 }
q=caf%C3%A9+au+lait&page=2

? そのものは含みません。すでにある ? の後ろへ貼るのが普通だからです。

配列は同じ鍵の繰り返しになる

{ "tag": ["news", "draft"] }
tag=news&tag=draft

クエリ文字列に配列をどう収めるかを定めた規格はありません。tag[]=、tag[0]=、読点で区切った並び、鍵の繰り返し——どれもどこかで使われています。鍵の繰り返しは URLSearchParams と大半のサーバ用の枠組みが設定なしで読み戻す形であり、この場所の逆変換が配列として返す形です。

入れ子は変換を止める

{ "filter": { "status": "open" } }

は拒まれ、メッセージは filter を名指しします。filter.status=open や filter[status]=open へ平たくすることは、流儀をひとつ作り出すことです。受け手がそれに同意する必要があり、どれを待っているかは JSON のどこにも書かれていません。

型は残らない。とりわけ null は残らない

クエリ文字列の中身はすべて文字です。2 と "2" は同じ形で出ていき、true は四文字で出ていき、いずれも文字列として戻ります。

null は空の値になります。

{ "ref": null }
ref=

これは "" として読み戻され、null にはなりません。鍵は残り、その空も残りますが、何も無いことと空の文字の違いは消えています。クエリ文字列にはそれを書く手段がありません。ここに書いておくのは、さもなければ本番で見つかる種類の損失だからです。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

配列はどう符号化されますか。角括弧ですか、鍵の繰り返しですか。
鍵の繰り返しです。`{"tag":["a","b"]}` は `tag=a&tag=b` になります。クエリ文字列の配列を定める規格はなく、選ぶのは流儀のあいだです。これは `URLSearchParams` が読み戻す形であり、この場所の逆変換が配列に戻す形でもあります。対になっています。
空白がなぜ `%20` ではなく `+` なのですか。
出力がフォームの符号化に従っているからです。そこでは `+` が空白を表します。フォームの復号器は両者を同じに読みます。百分率だけを復号する受け手はそうではなく、本物の加算記号に見えます。そういう相手へ送るなら、先に `+` を `%20` に置き換えてください。
あとから型は取り戻せますか。
取り戻せません。クエリ文字列が運ぶのは文字だけです。`2` も `true` も `"2"` も同じ文字として出ていき、文字列として戻ります。null はもっと悪く、空の値になり、空文字列と区別がつきません。この頁はその損失を隠さず、どこで起きるかを述べます。

関連ツール