UTILS.
Private by default
?=

Query String Parser

Parse a URL query string into JSON and convert JSON back into a query string.

Your files stay on this device

Files are processed in your browser, never uploaded. The site downloads code and assets to run the tools. No accounts or trackers.

Use Download to save this tool as one HTML file for offline use.

Privacy →
output

About this tool

Query String Parser is a free, in-browser developer tool that turns a URL query string into a formatted JSON object and rebuilds a query string from JSON. It runs on the browser's native URLSearchParams and URL parsing, so results match what the platform itself produces.

Paste a raw query string, a fragment starting with ?, or a whole URL — only the part after the ? is read, which makes it handy for inspecting analytics links, API request URLs, or OAuth redirects. Keys that appear more than once collapse into a JSON array, + and percent-encoded sequences are decoded to their real characters, and the JSON is pretty-printed with two-space indentation.

Feeding a flat JSON object the other way rebuilds an encoded query string, expanding array values back into repeated keys. Everything runs 100% in the browser: nothing is uploaded, there are no accounts or tracking, and it works offline.

Frequently asked questions

Can I paste a full URL?
Yes. Paste a complete URL and only its query portion — everything after the ? — is parsed into JSON; the scheme, host, path, and hash are ignored.
How are repeated keys handled?
Keys that appear more than once become a JSON array of all their values, and an array value is expanded back into repeated keys when you convert JSON to a query string.
How are spaces and encoded characters handled?
Parsing to JSON decodes + to a space and resolves percent-encoded sequences like %20 to their real characters. Building a query string re-encodes them, so spaces become + and special characters are percent-encoded again.
What JSON can I convert back to a query string?
A flat JSON object. Arrays, primitives, and null are rejected, and each value is converted to a string, so a nested object turns into text rather than more parameters.

More tools