1. Home
  2. Developer tools
  3. Query String to JSON

Query String to JSON

Paste a full URL or just the part after the question mark and get a JSON object. Bracket syntax such as filter[color]=red becomes a nested object, repeated keys become arrays, and %20 and + are decoded.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use Query String to JSON

  1. Paste a query string or URL.
  2. Choose type conversion, nesting and comma splitting.
  3. Copy the JSON.

Features

  • Accepts a full URL, a leading ?, or bare parameters
  • Nested keys with brackets and array notation
  • Repeated keys become arrays
  • Optional conversion of numbers, true, false and null
  • Optional comma splitting
  • Clear error for a broken percent sign

Supported formats

Input

  • URL
  • Query string

You get

  • JSON

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the Query String to JSON is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • Different frameworks parse arrays and nesting differently; the bracket style follows common qs-like rules.
  • The text after # is dropped because it is not part of the query.

Guide

Turning a URL query string into structured JSON

A query string is the part of a web address after the question mark: a flat list of names and values joined by ampersands, with percent signs for anything unusual. It is easy for a browser to produce and awkward for a person to read, especially once filters, arrays and encoded addresses are mixed together. Converting it into JSON makes the structure visible.

How the string is split

The page takes everything after the first question mark, removes any fragment after a hash sign, and cuts the rest at every ampersand. A semicolon is also accepted as a separator, as in older HTML. Each pair is split at its first equals sign into a key and a value, and both are percent-decoded as UTF-8. The plus sign becomes a space, as in form submissions. If a percent sign is not followed by two hexadecimal digits, the page names the position instead of guessing.

Arrays and nesting

Query strings have no official way to carry lists or objects, so frameworks invented conventions. The page follows the common bracket style: a name followed by [] collects values into an array, a name followed by [key] makes a nested object, and the two combine, as in filter[size][min]=38. A key that is simply repeated, such as tag=a&tag=b, becomes an array too. The nesting switch turns bracket interpretation off if your keys contain brackets literally.

Types

Everything in a query string is text. With type conversion on, values that read exactly as true, false, null or a plain number become JSON booleans, null and numbers. A value such as 007 or 1e3 stays a string because converting it would change what it says, and integers beyond JavaScript’s safe range stay strings to avoid rounding. Switch the option off if you want every value as text. A separate option splits comma lists such as a=1,2,3 into arrays.

Using the page

Paste into the left box and copy the JSON from the right. Nothing is stored in the browser, because a query string often contains tokens or personal data. The options persist between visits so you do not have to reset them. Invalid input produces a message rather than partial output.

A worked example

The Sample button loads a shop search link. The result has q as “red shoes” (the plus sign decoded), page as the number 2, sort as “price”, tags as an array of “sale” and “new” from the two tags[] entries, a filter object with color “red” and a size object holding min 38 and max 44, instock as true, and ref as “a&b” from the encoded %26. Each of those conversions is visible in the output at once, which is more than a glance at the original link could give.

Limits

Parsing follows common conventions but not a single standard, so a server that uses another scheme, such as dots for nesting or numeric indices with gaps, may read the same string differently. Duplicated keys mixed with bracket forms are merged in a simple way. Very long strings work, but the page does not sort keys or remove duplicates. It also does not decode values that are themselves encoded, such as Base64 payloads or nested URLs; those appear as text for you to decode separately.

Checked against the current version of the Query String to JSON on .

Troubleshooting

The download did not start

Look for your browser’s download bar or icon. Some browsers ask once before a site may download files; allow it and click the button again.

Frequently asked questions

Why does a parameter with no equals sign appear with an empty value?

A key written alone, as in ?debug, has no value. The page records it with an empty string, which keeps the key visible; frameworks differ on whether they treat it as true, as empty or as missing, so check what yours does.

Can I use this to inspect a tracking link?

Yes. Paste the whole link and the parameters, including campaign tags and encoded redirect addresses, appear as readable keys and values. The text stays in memory only and is not saved or sent anywhere, which matters because links sometimes carry tokens.

Why does 007 stay a string?

Converting it to the number 7 would lose the leading zeros, which matter for zip codes and IDs. Only plain integers and decimals that read back identically are converted.

What happens to a plus sign?

In form-encoded query strings + means a space, so it is decoded as one. A literal plus is written %2B.

Keep working with the result

After you download, choose “Save to Workstand” to keep the result in a folder on your computer, attach it to a project and create a follow-up task. It is saved by your browser, not uploaded.