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

クエリ文字列をJSONに変換|URL全体をそのまま貼り付けられます

URLのクエリ文字列をJSONに変換します。アドレスごと貼っても構いません。パラメータは一行ずつ目で追えるオブジェクトになって出てくるので、確認が楽になります。

高速 プライベート Cookieゼロ
インデント

Query String 入力

JSON 出力

このツールの動作

クエリ文字列が JSON のオブジェクトになります。

?q=json+to+yaml&page=2&tag=a&tag=b
{
  "q": "json to yaml",
  "page": "2",
  "tag": ["a", "b"]
}

+ は空白、%C3%A9 は é です。パーセント符号化はこちらで解きます。たいていはそれが訪れた理由でしょう。同じキーが繰り返されていれば、現れた順の配列になります。

アドレスごと貼ってよい

https://x.dev/search?q=ada&lang=ja#results
{
  "q": "ada",
  "lang": "ja"
}

URL をまるごと貼るのは多くの人がすることですが、このツールはクエリの前にあるものすべてでキーを作っていました。https://x.dev/search?q のように。結果はデータのような顔をして、意味を成していませんでした。いまは最初の疑問符より前のアドレスを落とし、その後ろの断片も落とします。location.search もそれを運びません。本物の欠陥で、このページを書く過程で見つけ、直しました。

値の中の疑問符はそのままです。a=1?2 は {"a": "1?2"} になります。クエリを開く疑問符は最初の = より前にあり、後ろではないからです。

すべては文字列

?id=007&active=true&count=3
{
  "id": "007",
  "active": "true",
  "count": "3"
}

クエリ文字列が運ぶのは文字です。007 は 7 ではなく、true は真偽値ではありません。推し量る変換器は、黙って識別子を書き換えてしまいます。型付けは、count が数で id がゼロ付きの参照だと知っているあなたの側の仕事です。

手を触れないもの

  • 角括弧付きのキー。 a[]=1 や o[b]=2 は a[]、o[b] のまま名前になります。PHP と Rails はそこに配列や連想配列を読みますが、そうしない基盤もあり、文字列自身は書き手を明かしません。
  • キーの順序。 入ってきた順に出ていきます。最初に現れたものが先です。
  • 空の値。 ?a&b= は {"a": "", "b": ""} です。値の無い引数も「ある」のであり、多くの場合それこそが意味です。

プライバシー

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

よくある質問

URL をまるごと貼っても大丈夫ですか。
はい、このページを書いてからは大丈夫です。以前は `https://x.dev/p?a=1` が `https://x.dev/p?a` という名前のキーを作っていました。クエリの前にあるアドレスがキーの一部になり、結果はデータのような顔をしていたわけです。いまは最初の疑問符より前をすべて落とし、その後ろの `#断片` も落とします。ブラウザーが `location.search` を埋めるときと同じです。
なぜ値はすべて文字列なのですか。
クエリ文字列に型が無いからです。`?page=2` と `?page=02` は別の文字列で、後者には意味を持たせている API が少なくありません。桁を揃えた参照、あるいは版番号です。どちらも数の 2 として読めば、こちらが勝手に決めてしまい、違いが消えます。型付けは、その引数が何かを知っているあなたの側で行ってください。
`a[]=1&a[]=2` はどうなりますか。
キーは書かれたまま `a[]` になります。角括弧は約束事で、PHP や Rails はそこに配列を読み取りますが、そうしない基盤も多く、クエリ文字列自身はどちらが書いたかを語りません。角括弧の無い繰り返し(`a=1&a=2`)は配列になります。構文そのものが曖昧さなく示しているのは、そこだけだからです。

関連ツール