Query string to JSON

Input
Output

Query String to JSON

A long URL is hard to read, and its parameters are easier to check, compare or reuse as JSON. Paste the whole address: everything after the ? becomes JSON, with bracket keys as nested objects and arrays, and %-encoded values decoded.

Example: a search page's URL

The whole URL as copied from the address bar. Everything before the ? is ignored; %20 becomes a space, the bracket keys become a nested filters object with a size array, and numbers and true become JSON values:

Input

https://shop.example.com/search?q=red%20shoes&filters[brand]=puma&filters[size][]=8&filters[size][]=9&page=2&inStock=true

Output

{
  "q": "red shoes",
  "filters": {
    "brand": "puma",
    "size": [
      8,
      9
    ]
  },
  "page": 2,
  "inStock": true
}

How do I use the Query string to JSON?

  1. Paste a URL, or just the part after the ?.
  2. Choose whether to detect numbers and true/false, or keep every value as text.
  3. Copy the JSON.

What does the Query string to JSON do?

  • The whole URL can be pasted
  • filters[brand]=x and a[]=1&a[]=2 as nested objects and arrays
  • %-encoding and + as a space decoded

When to use the Query string to JSON

Search pages, filters, tracking links and OAuth redirects pack their state into the query string, and a long one is hard to read. As JSON, every parameter is on its own line, encoded values are readable, and you can compare two URLs with Diff or reuse the parameters as a request body.

Paste the whole URL; everything up to the ? is ignored. %-encoded values are decoded and + becomes a space, while %2B stays a plus. Bracket keys become structure: filters[brand]=x a nested object, size[]=8&size[]=9 or size[0]=8 an array, and a key repeated without brackets also becomes an array. Numbers and true/false become JSON values, except values with a leading zero such as 007, which stay text; choose to keep every value as text if your IDs only look like numbers.

Frequently asked questions

Why did the + in my value turn into a space?
In a query string, + means a space, the way forms send it. A real plus sign is sent as %2B, and that's decoded to +. If a value should keep a +, the link that made it didn't encode it.
Can I go back from JSON to a URL?
Yes. Switch Direction to JSON → Query string, and pick how arrays are written: a[0]=x, a[]=x, or a=x&a=y repeated.
Is my data uploaded?
No. Bracely runs entirely in your browser, so nothing you paste or open leaves your device.

More JSON tools

Bracely has 104 JSON tools in one page. Related ones:

Runs entirely in your browser. Nothing you paste is uploaded. Made by Saurabh Pagrut · About · Privacy policy
Last updated · Version 6.1 · Changelog
Saurabh Pagrut on GitHub · LinkedIn · X · YouTube · Instagram