JSON to URL Query Converter
Translate JSON and query parameters without hiding encoding, nesting, repetition, or type-conversion choices.
Paste a JSON object to turn into query parameters, or paste a query string to decode it back into JSON.
Query Settings
Options
Query parameters are strings on the wire. Nesting, arrays, plus signs, and type coercion are application-level choices, so keep only the transformations your receiving system expects.
A query string is a list of name-value pairs, not a typed JSON object
Converting JSON into a URL query means choosing how structure is flattened. A JSON boolean, number, array, nested object, null, and empty string do not carry their JSON types through a query string by themselves. On the wire, a parameter is a name and a string value; the receiving application decides what that string means.
That is why decoded values stay strings by default. Optional coercion is deliberately conservative and only converts true, false, null, and finite numbers that JavaScript can represent safely.
Nested-key syntax is an application convention
Dot form such as filter.status and bracket form such as filter[status] are common conventions, but the URL standard does not assign nested-object semantics to either one. Match the backend or framework that will parse the request.
Array syntax can change the meaning of the request
Repeated names, comma-joined values, empty brackets, indexed brackets, and JSON text are not interchangeable. A comma inside an array item makes comma mode ambiguous unless the receiver has its own escaping rule. Repeated keys are usually the least lossy representation when the API explicitly supports them.
Percent encoding and form encoding are related but not identical
Generic component encoding uses percent escapes such as %20 for a space. The WHATWG application/x-www-form-urlencoded serializer used by URLSearchParams encodes spaces as + and uses a slightly different percent-encode set. The form-style option follows that behavior instead of only swapping one character after the fact.
Primary reference: WHATWG URL Standard — application/x-www-form-urlencoded
Malformed percent escapes are errors, not text to guess around
A copied query containing an incomplete escape such as %E0 or a stray % is stopped during decoding. Silently returning the undecoded source would mix encoded and decoded data in the same result and make later comparisons unreliable.
A + is decoded as a space only when the form-style interpretation is enabled. Outside that convention, a literal plus can be meaningful data and should remain a plus.
Appending parameters to a full URL must preserve the fragment
Existing query parameters are retained, new pairs are added before any #fragment, and the fragment stays at the end of the URL. This avoids the common mistake of appending ?x=1 after a fragment, where it would no longer be part of the URL query.
Flattening can create collisions
A literal JSON key named filter.status can collide with the dot-path representation of {"filter":{"status":"live"}}. Bracket syntax has similar edge cases when source keys contain brackets. Repeated generated names are surfaced so you can decide whether they are intentional array entries or a structural collision.
Empty objects have no natural query-pair representation and are omitted. Empty arrays are also omitted unless the selected array policy serializes the whole array as JSON text. Those omissions are reported when they occur.
JSON input is checked before browser parsing can hide data loss
Duplicate JSON object names are rejected instead of allowing JSON.parse to keep one value silently. Integers outside JavaScript's safe exact range are also stopped before they can be rounded and then emitted as a different query value.
Local processing does not remove every privacy consideration
Conversion and decoding run in the current browser tab; the page code does not send the pasted query or JSON to a Yoryantra server. Query strings often contain identifiers, search terms, tokens, or internal filters, so remove secrets before sharing generated URLs in tickets, screenshots, analytics tools, chat logs, or documentation.
