Skip to content
XUtilHub

JSON URL Decoder – Decode URL-Encoded JSON

Decode URL-encoded (percent-encoded) JSON back into readable, formatted JSON. Free online tool.

  • Free, no sign-up
  • Runs in your browser, nothing uploaded
Input
Output

About the JSON URL Decode

Decode percent-encoded JSON from a URL or query string and format it for reading.

Key features

  • Decodes percent-encoded (URL-encoded) JSON
  • Treats + as a space, like form data
  • Validates and pretty-prints the decoded result
  • Full UTF-8 decoding
  • Shows a clear error for malformed sequences
  • Private, in-browser decoding

Read JSON hidden in URLs

Web apps often store state, filters or tracking payloads as JSON in the URL. Analytics links, OAuth state parameters, dashboard share links and webhook test URLs are all examples. The JSON arrives percent-encoded, like %7B%22id%22%3A1%7D, which is impossible to read. This tool decodes it and shows formatted, validated JSON.

Example

%7B%22page%22%3A2%2C%22sort%22%3A%7B%22field%22%3A%22date%22%2C%22dir%22%3A%22desc%22%7D%7D
{
  "page": 2,
  "sort": {
    "field": "date",
    "dir": "desc"
  }
}

Getting the value out of a URL

Given:

https://app.example.com/report?view=table&state=%7B%22page%22%3A2%7D&lang=en

copy only the text between state= and the next &, i.e. %7B%22page%22%3A2%7D, and paste it into the tool.

Common percent codes

CodeCharacterCodeCharacter
%7B{%5B[
%7D}%5D]
%22"%3A:
%2C,%20 / +space
%26&%25%

Decoding in code

const data = JSON.parse(decodeURIComponent(value.replace(/\+/g, " ")));
from urllib.parse import unquote_plus
data = json.loads(unquote_plus(value))

Encode with JSON URL Encode. If the value looks like eyJ..., it's Base64; use Base64 to JSON instead.

How to use the JSON URL Decode

  1. Paste your data into the input box, upload a file, or click Sample to try it out.
  2. Adjust the options above the editor if you need to (indentation, delimiter, and so on).
  3. The result appears instantly in the output panel. Any errors are shown with their line and column.
  4. Click Copy to copy the result, or Download to save it as a file.

Frequently asked questions

Why do I get 'URI malformed'?

The input contains a % that isn't followed by two hex digits, or an incomplete multi-byte UTF-8 sequence, usually because the URL was truncated or double-edited. Copy the full parameter value again.

My JSON is encoded twice (%257B instead of %7B). What do I do?

%25 is an encoded % sign, which means the value was encoded twice. Decode once, copy the result and decode again.

Should I paste the whole URL or just the parameter?

Just the parameter value, i.e. the part after q= and before the next &.

Does it handle + signs?

Yes. + is converted to a space before decoding, matching how HTML forms encode spaces.

Is my JSON uploaded to a server?

No. All JSON tools run entirely in your browser, so your data never leaves your device.

Is there a size limit?

There is no fixed limit. Files of several megabytes work fine; very large files depend on your device's memory.

Do I need an account?

No. Every JSON tool is free and works without signing up.

Last updated:

Related JSON tools