Choose the input mode
Select Query, URL or JSON explicitly. Query accepts an optional leading ? and treats the first # as a fragment. URL mode preserves the original base and fragment without opening the address.
URL / URI Tools
Keep every repeated parameter in order
Your input is processed in this browser and is not sent to a server.
Choose Query, URL or JSON explicitly. Query treats the first # as a fragment; URL mode preserves its original base and hash without opening it.
Object JSON groups repeated values and loses interleaved order and flag distinctions. Integer-like keys can reorder. Choose entries for exact parameters.
Maximum 100,000 UTF-16 input units and 1,000 entries. Generated exports are never truncated. Each output format is limited to 1,200,000 UTF-16 units; exceeding it rejects conversion instead of truncating.
Rows are a draft until applied. A flag without = requires an empty value and a nonempty key. Preview changes to apply or discard them.
Enter input or choose an example to begin.
The Query string builder turns a query, a URL or JSON into editable parameter rows. Inspect URL parameters without losing repeated names, empty values or the difference between flag and flag=.
Use query string to JSON conversion for a test fixture, then choose form or RFC3986 percent encoding when rebuilding the link. Query values remain text, including long identifiers and leading zeros.
The Query string builder exports an ordered entries array with key, value and hasEquals. Unlike a grouped object, it preserves interleaved repeated keys and flags without an equals sign.
Preview a stable sort by decoded key before applying it. Equal keys keep their value order; Undo restores the earlier input and results.
Select Query, URL or JSON explicitly. Query accepts an optional leading ? and treats the first # as a fragment. URL mode preserves the original base and fragment without opening the address.
By default, input + means space and form output writes spaces as +. Choose literal plus for input or RFC3986 output for %20. Automatic conversion waits 350 ms; turn it off to use the button or Ctrl/Cmd + Enter.
Edit rows, add a parameter, remove a row or preview sorting, then apply the proposed replacement. Copying and downloads stay disabled while results are stale. Undo restores the previous input, settings and result.
The table keeps each parameter as a row. A hasEquals flag distinguishes debug from debug= without converting either to a Boolean.
Ordered entries retain the complete parameter sequence. Grouped object JSON uses strings or string arrays for repeated keys and is convenient when cross-key order is irrelevant.
Rebuild query text or a URL while retaining its base and hash. Names and values are encoded separately, so an & or = inside a value stays data.
Copy the selected output, download text, or save a JSON report. Exported results are complete even when a generated replacement is too large to apply.
Every occurrence stays in its own row. Use entries JSON to preserve the full sequence; object JSON groups repeated values in an array.
A receiving service may interpret it. The tool preserves it by default and offers an explicit stable sort preview; it does not declare two requests equivalent.
No. Bracket and dotted names stay literal. JSON object values must be strings or arrays of strings; use entries for exact parameter order.
Form output uses +; RFC3986 output uses %20. Input plus interpretation is a separate choice. A literal plus is encoded as %2B.
URL mode retains the base and fragment as supplied and never requests the address. JSON entries describe parameters only, so use the URL result or report to retain URL context.
Something looks wrong?
Use the Query string builder with a small example, inspect repeated keys and flags, then copy the representation your application expects.