Zero Signup ToolsFree browser tools

Developer Tools

JSON to Query String Converter

Convert JSON to a URL query string and back. Brackets, dot paths, indexed arrays, repeat keys, and comma joined lists. Runs in your browser.

JSON to query string converter

Object or array. Strings, numbers, booleans, and null are supported.

Try a sample:

8 parameters · 198 characters

Object key style

How nested object paths are written.

Array format

How list values are written and read.

Encoding

Percent-encode values for safe URLs.

Output options

Extra controls applied during serialization.

Array conventions cheatsheet

  • tag[]=a&tag[]=b is the bracket style used by PHP, Rails strong parameters, and the qs library. Servers see ["a", "b"].
  • tag[0]=a&tag[1]=b is the indexed style used by qs and most form-data encoders. Useful when item order matters.
  • tag=a&tag=b is the default that URLSearchParams produces and what Django and Java servlets read. Many APIs accept this with no extra config.
  • tag=a,b is the comma style used by Google Analytics, the OpenAPI form style with explode=false, and many simple REST filters.

Nested objects

  • Bracket: user[address][city]=London
  • Dot: user.address.city=London
  • The parser accepts both styles in the same input, so a query string mixing user.name and user[email] still produces one nested object.
  • Repeated full keys always accumulate into an array, so a=1&a=2 becomes [1, 2].
  • Plus signs in values are decoded as spaces (form-encoded). Use the Encoded (%20) output mode for strict RFC 3986 encoding.

How to use

  1. Pick the direction you need: JSON to query string when you have an object and want a URL, or Query string to JSON when you have a URL and want the structured data behind it.
  2. Paste your input into the left textarea, or click a sample to load a starter payload that demonstrates one of the array conventions.
  3. Select the Array format that matches the server or framework you are talking to: bracket [], indexed [0], repeat key, or comma joined. This controls both serialization and parsing.
  4. When converting JSON, choose the Object key style for nested paths (brackets like user[address][city] or dot like user.address.city) and pick the Encoding that matches your target (percent for strict URLs, plus for form encoding, or raw for inspection).
  5. Toggle Sort keys for deterministic diff-friendly output and Skip null and empty values to drop optional filters that should not appear in the URL.
  6. Read the result in the right textarea and click Copy to grab the output. Use Send output to the other side to round-trip a payload and check that your settings line up with the server.

About this tool

JSON to Query String Converter is a two-way bridge between a JSON object (or array) and a URL query string. The forward direction turns a structured value into a flat string of key/value pairs you can paste straight after a question mark in a URL, attach to an HTTP GET request, or drop into a Postman collection. The reverse direction takes any query string, a full URL with a query string, or even a fragment containing one, and rebuilds the structured JSON tree behind it. Because real-world APIs and frameworks disagree on how arrays and nested objects should be encoded, the tool exposes the four conventions that actually show up in the wild: bracket arrays like tag[]=node&tag[]=react (PHP, Rails strong parameters, the qs library, Express body-parser); indexed brackets like tag[0]=node&tag[1]=react (qs in strict mode, most form-data encoders); repeat keys like tag=node&tag=react (Django, Java servlets, the URLSearchParams default in browsers and Node.js); and comma joined values like tag=node,react (Google Analytics, OpenAPI form style with explode=false, and many simple REST filters). Nested objects can be written with bracket paths (user[address][city]=London) or dot paths (user.address.city=London), and the parser accepts both styles in the same input, so a query string that mixes user.name with user[email] still rebuilds into one nested object. Serialization options cover the controls developers actually need: percent-encode values for RFC 3986 safe URLs, percent-encode but render spaces as plus signs for application/x-www-form-urlencoded compatibility, or emit raw values for easy inspection. Sort the keys alphabetically so two equivalent payloads diff cleanly in code review. Skip nulls and empty strings, which is what most servers want for optional filters. Prepend the leading question mark when you are pasting the result straight into a URL. Parser options coerce values back into typed JSON: numbers become numbers, true and false become booleans, and the literal string null becomes the null value. Live stats show how many parameters or top-level keys the result contains so you can spot truncated lists at a glance. Useful for building API requests from a snippet of state, generating shareable links that encode a complex filter set, converting saved Postman collections to a structured config, debugging unfamiliar query strings from logs or browser dev tools, preparing UTM campaign URLs from a JSON spreadsheet export, or normalizing legacy form payloads into a modern JSON body. Everything runs locally in your browser using JSON.parse, JSON.stringify, URLSearchParams, encodeURIComponent, and decodeURIComponent. No data is uploaded.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsDeveloper Tools