{ } JSON Workbench0 network requests. Check DevTools

"JSON to Query String":{ }

Paste a JSON object and get a URL query string: key=value pairs joined by &, correctly percent-encoded and ready to append to a URL. Arrays repeat the key; nested objects are JSON-encoded to round-trip. Runs 100% in your browser: zero network requests.

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 42 and "42" encode the same way. The reverse tool restores types with JSON.parse where it can.

How to use

  1. Paste a JSON object (key/value pairs) into the Input pane.
  2. The URL query string (key=value&key2=value2, properly percent-encoded) appears in the Output pane.
  3. Arrays repeat the key (tags=a&tags=b); nested objects are JSON-encoded so they round-trip.
  4. Copy the query string and append it to a URL after ?.
  5. Runs 100% in your browser; nothing is uploaded.

Examples

Object → query string

Input
{ "page": 2, "limit": 50, "q": "json tools" }
Output
page=2&limit=50&q=json+tools

Arrays repeat the key

Input
{ "id": 7, "tags": ["a", "b"] }
Output
id=7&tags=a&tags=b

Special characters are percent-encoded

Input
{ "redirect": "https://x.com/a?b=1" }
Output
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.

Related tools