What this tool converts
This tool takes a flat JSON object and converts it into a URL-encoded query string using the browser's native URLSearchParams — the same encoding logic browsers use for form submissions and fetch requests. Array values are expanded into repeated keys (e.g. {"tag":["a","b"]} becomes tag=a&tag=b), and special characters in keys or values are percent-encoded automatically.
It only accepts a top-level JSON object, not an array or a primitive — nested objects inside values get stringified with String(), which usually isn't what you want, so keep the structure flat before converting.
When to use it
Use it when building a URL by hand for an API request, a webhook test, or a redirect link, and you have the parameters as a JSON object (from a config file, a Postman collection, or code you're debugging) rather than typed out as key=value pairs. It's also handy when constructing analytics or tracking links where you need several UTM parameters encoded correctly, since manual percent-encoding is error-prone for spaces and special characters.
For the reverse direction — pulling a JSON object back out of an existing query string — use the companion Query String to JSON tool.
Example
Input {"q": "rate limiting", "page": 2, "tags": ["api", "backend"]} converts to q=rate+limiting&page=2&tags=api&tags=backend — note the space in "rate limiting" becomes a +, and the tags array produces two separate tags= entries rather than a single comma-joined value.
How to use the JSON to Query String tool
- 1
Paste a JSON object
Must be a flat object at the top level — arrays and primitives aren't accepted as input.
- 2
Click Convert
URLSearchParams encodes each key/value pair, expanding arrays into repeated keys.
- 3
Copy the result
The output is a ready-to-use query string you can append to any URL after a ?.
- 4
Share it
Copy a permalink to hand the exact input JSON to a teammate.
Frequently asked questions
How are arrays handled?
Each array element becomes its own repeated key, e.g. {"id":[1,2]} → id=1&id=2. This matches how most backend frameworks (Express, Rails, PHP with array syntax) expect repeated parameters, but check your specific API — some expect comma-joined values instead.
What happens with nested objects as values?
Nested objects get converted with JavaScript's String() coercion, which produces "[object Object]" — not useful output. Flatten nested structures into simple key/value pairs before converting.
How do I go the other direction, from a query string back to JSON?
Use the Query String to JSON tool — it's the exact inverse operation.
Is my JSON uploaded anywhere?
No. Conversion runs entirely in your browser using the native URLSearchParams API — nothing is sent to a server.
Related on TechLogHub
Related Converter Tools
Unix Timestamp Converter with Milliseconds
Convert Unix timestamps to human-readable dates and vice versa
ENV to JSON
Convert .env files to JSON format
ENV to Docker Compose
Convert .env files to docker-compose environment snippet
Query String to JSON
Parse URL query strings into JSON objects
CSV to JSON Converter with Semicolon and Tab Delimiters
Convert CSV data to JSON array format
JSON to CSV Converter with Headers from Every Key
Convert JSON arrays to CSV format
Get the next tool before you need it
One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.

