Parse repeated keys and encoded spaces
Input
tag=one&tag=two&q=hello+worldExample output
{
"tag": [
"one",
"two"
],
"q": "hello world"
}Parse URL query strings into structured JSON and serialize JSON objects back into encoded query strings, entirely in your browser. Repeated keys become arrays, bracketed keys nest into objects, and array serialization follows the selected repeat, brackets, indices, or comma format. The tool only emits a query string, never a complete URL.
| Accepted input | Query-string text for parsing; a JSON object for building (top-level arrays produce degenerate empty-key pairs and should be wrapped in an object). |
|---|---|
| Array serialization | Repeat keys, brackets, indices, or comma-separated, with optional key sorting, null skipping, query prefix, and type parsing |
| Editing model | Raw text and JSON editor in a transform workspace; structured input is typed or pasted, not assembled row by row |
| Max input size | 2 MB |
| Execution deadline | 2 s |
| Processing location | Browser-only: pasted input is not uploaded |
Input
tag=one&tag=two&q=hello+worldExample output
{
"tag": [
"one",
"two"
],
"q": "hello world"
}Input
{"tag":["one","two"],"q":"hello world"}Example output
tag=one&tag=two&q=hello%20worldWhen one key is used both as a scalar and as a nested object, the conflicting value is dropped and reported with a shape-conflict warning instead of silently overwriting kept data.
Key path segments such as __proto__, constructor, and prototype are refused with an invalid-input error rather than assigned into the result object.
Optional number parsing converts plain numeric strings but leaves leading-zero values such as 007 as strings, so codes and identifiers are not mangled.
Building emits the serialized parameters alone. The tool does not attach them to a base address or generate a complete URL.
URL Parser & Inspector
Decompose, inspect, and analyze URLs into protocol, host, port, path segments, query parameters, and hash fragments.
URL Encoder / Decoder
Encode and decode URL components, query parameters, and special characters using RFC 3986 percent-encoding or form-urlencoded format.
cURL Command Converter
Convert curl commands into executable code for JavaScript (fetch), Python (requests), Node.js (axios), Go, and PHP.
JSON Formatter
Prettify, indent, and format JSON strings with customizable indentation and key sorting.
Repeated keys such as tag=one&tag=two parse into an array under one key, preserving order. Building with the repeat format serializes an array back into repeated key-value pairs.
Parsing decodes percent escapes and plus-as-space; building percent-encodes keys and values, so hello world becomes hello%20world. Reserved separators such as & and = are always encoded in values.
Yes, by default entries keep their input order through parsing and building. Enable key sorting only when you explicitly want alphabetical output.
Repeat (a=1&a=2), brackets (a[]=1&a[]=2), indices (a[0]=1&a[1]=2), and comma-separated (a=1,2). Choose the format your server or API expects before building.
Parsing accepts a full URL and isolates the part after ? for you. Building only returns the query string itself — paste it onto your own base address; no complete URL is generated.