What this does
Decodes a URL query string (or a whole URL) into readable parameters and JSON, and builds a correctly percent-encoded query string from a JSON object. Every key and value is decoded from percent-escapes, + is read as a space, and a table lists the parameters in the order they appear.
Repeated keys, arrays and nesting
Repeated keys (tag=a&tag=b) become arrays. With bracket nesting on, the conventions used by PHP, Rails and the qs library are understood:user[name]=Ada becomes a user object with a nameproperty, while ids[]=1&ids[]=2 and ids[0]=1&ids[1]=2become arrays. Turn the option off to keep brackets as part of the key. Keys such as __proto__ are handled as plain data and never touch object prototypes.
Building a query string
Pick how arrays are written: repeated keys, a[]=1, a[0]=1 or comma-separated. Nested objects are written with brackets, numbers and booleans become text, and null becomes an empty value. Characters are encoded withencodeURIComponent rules plus ! ' ( ) *, and spaces can be written as %20 or as + (form encoding).
Details
A fragment after # is ignored when you paste a full URL. A stray% that is not followed by two hex digits is reported with the parameter it is in. Values are always strings, because a query string carries no type information.
Privacy
Parsing happens in your browser. URLs and tokens in them are never uploaded or stored.