What is JSON to query string?
This tool turns a JSON object into a URL query string: the ?key=value&key2=value2 part of a URL. It's handy when you have a request body or config as JSON but need to pass it as GET parameters: building API links, deep links, tracking URLs, or reproducing a request in the browser. Values are percent-encoded with the browser's native URLSearchParams, so spaces, ampersands, and slashes are escaped correctly. For the reverse direction, use Query String to JSON.
Encoding notes
- Primitive values (string, number, boolean) are stringified and percent-encoded.
- Arrays repeat the key per element.
- Nested objects are JSON-encoded as the value so they round-trip losslessly.
- Query strings are inherently untyped (everything becomes text), so
42and"42"encode the same way. The reverse tool restores types withJSON.parsewhere it can.
How to use
- Paste a JSON object (key/value pairs) into the Input pane.
- The URL query string (
key=value&key2=value2, properly percent-encoded) appears in the Output pane. - Arrays repeat the key (
tags=a&tags=b); nested objects are JSON-encoded so they round-trip. - Copy the query string and append it to a URL after
?. - Runs 100% in your browser; nothing is uploaded.
Examples
Object → query string
{ "page": 2, "limit": 50, "q": "json tools" }page=2&limit=50&q=json+tools
Arrays repeat the key
{ "id": 7, "tags": ["a", "b"] }id=7&tags=a&tags=b
Special characters are percent-encoded
{ "redirect": "https://x.com/a?b=1" }redirect=https%3A%2F%2Fx.com%2Fa%3Fb%3D1
FAQ
How do I convert a JSON object to a URL query string?
Paste the object here. Each top-level key becomes a key=value pair, joined by & and percent-encoded so it's safe to drop into a URL after ?. It runs entirely in your browser.
How are arrays handled?
An array value repeats the key once per element, e.g. {"tags":["a","b"]} becomes tags=a&tags=b, the convention most servers and frameworks expect.
How are nested objects handled?
A nested object or array-of-objects is JSON-encoded as the value (then percent-encoded) so it survives the round-trip back through the Query String to JSON tool. Query strings have no native nesting, so this is the safest lossless option.
Does the input have to be a JSON object?
Yes. Query strings are key/value pairs, so the top level must be an object. A bare array or primitive shows a hint asking for an object.
Is my data uploaded?
No. Conversion uses the browser's built-in URL encoder. Zero network requests; verify in DevTools.