JSON to Query String
Turn a JSON object into a URL query string. Nested objects and arrays are serialised in the style your backend expects — bracket, dot, repeated keys, or comma-joined — and everything is percent-encoded so the result is safe to paste into a URL.
How to convert JSON to a query string
- Paste a JSON object into the input pane.
- Pick the style that matches your server. Rails and PHP expect brackets; Express with
extendedquery parsing accepts brackets too; many Go and Java handlers want repeated keys. - Tick Skip null values if a null should mean "omit the parameter" rather than send an empty one.
- Turn off percent-encoding only to read the output more easily — the unencoded form is not safe in a real URL.
- Copy the query string and append it to your endpoint.
Which style does my framework want?
- Brackets — Rails, PHP, Express (
extended), Laravel. The de-facto standard for nested data, though not in any RFC. - Repeated keys — the only style every server understands for arrays. Go's
r.URL.Query(), Java servlets and most standard libraries return a list for repeated names. - Comma-joined — compact and common in OpenAPI (
style: form, explode: false). Breaks if a value legitimately contains a comma. - Dots — used by some Spring and .NET configurations, and by a few analytics APIs.
Query-string nesting is a convention, not a specification. When in doubt, send a test request and see what the server actually parses.
Privacy
Nothing is uploaded. The conversion runs in this tab using your own browser's JavaScript engine — no server sees your data, and the page keeps working with the network disconnected.
FAQ
Why are my brackets encoded as %5B and %5D?
Because that is correct — brackets are reserved characters in a URI. Every mainstream framework decodes them before parsing, so nesting still works. Turn encoding off if you only want to read the output.
Are spaces encoded as %20 or +?
As %20, which is valid everywhere in a URL. The + form is only correct for application/x-www-form-urlencoded bodies, though most servers accept both in a query string.
Is there a length limit?
Not in this tool, but there is in practice: browsers and proxies start failing somewhere between 2,000 and 8,000 characters. If your query string is that long, use a POST body.