ENRU

JSON to Query String

GET or POST. I don’t care. I convert.

Input

Paste JSON, a query string or a whole URL. I’ll pick the direction.

Ctrl+Enter runs · drop a file on this pane

Query strings have no types. Just strings with ambitions.
— JSON Statham
OutputQuery string
Example: a query string in, JSON out. Every value stays a string.
Waiting for JSON or a query string.
Ln 1, Col 11:10 BAPI

Convert a JSON request body to a query string for a GET, or a query string or a whole URL back to JSON. Arrays, nesting and spaces the way your backend reads them, numbers as written, and every error with a line and a column.

How it works

  1. Paste JSON, a query string or a whole URL, or drop a file. I pick the direction; switch To query or To JSON if you disagree.
  2. Pick how arrays, nesting and spaces are written. For To JSON, decide whether 2 stays the string "2" or becomes a number.
  3. Copy or download the result. What a query string can’t carry is listed under it. Got JSON? Format it in the Formatter.

There is no single standard for nested query strings

RFC 3986 defines which characters a query string may hold, and HTML forms define key=value pairs joined by &. Nobody defines arrays or nested objects. PHP and Rails read tags[]=a and user[name]=x, Node’s qs writes indexes like items[0][id]=1, Java servlets and Go read repeated keys, Spring binds user.name=x, and some APIs want commas. Check what your backend parses and set Arrays and Nesting to match.

FAQ

Is my data sent anywhere?

To our API, over HTTPS: it converts the text in memory and doesn’t log or store it. The text goes when you run a conversion: the Convert button or Ctrl/Cmd+Enter, a paste into an empty editor, a file or a sample. With live conversion on, it also goes after each pause in typing; turn it off in the status bar and nothing leaves until you run one. The page also sends usage statistics tied to a random device ID, such as the direction and sizes, never the content.

%20 or +?

Both stand for a space in a query string from an HTML form; RFC 3986 knows only %20. To query writes %20 unless you pick +. To JSON reads + as a space unless you set Space to %20: then + stays a plus sign.

Why are my numbers strings?

A query string has no types: page=2 is just the text 2. To JSON keeps every value a string unless you switch Types from "1" to 1: then 123, -1.5 and 2.50 become numbers exactly as written, true and false become booleans, and null becomes null. 007 stays a string: a leading zero usually means an ID.

What happens to null and empty arrays?

A query string can’t say “empty list” or “null”. To query writes null as key= with an empty value and leaves empty arrays and objects out. Each loss is listed under the result with its JSON Pointer path, so nothing disappears silently.

Other tools

Keyboard shortcuts

Everywhere
Ctrl+EnterRun the page’s main action
Ctrl+OOpen a file
Ctrl+SDownload the result
F8 / eJump to the error
/Focus the input
wWrap lines
cCopy the output
qAnother quote
?This help
EscClose

Keys like c, q, w work when the cursor isn’t in an editor.