URL Decode JSON
Decode URL-encoded JSON back to regular JSON.
Input (URL-encoded JSON)
Output (JSON)
What It Does
The URL Decode JSON tool reverses percent-encoding to restore JSON data from URL-encoded format back to its original, human-readable structure. When JSON is embedded in a URL — whether in a query string, a webhook payload, or an API request — characters like braces, quotes, colons, and spaces get replaced with percent-encoded sequences such as %7B, %22, %3A, and %20. These sequences are unreadable at a glance and impossible to debug without decoding them first. This tool handles that conversion instantly, transforming a garbled string of percent-codes back into clean, formatted JSON you can actually read and work with. It's an essential utility for frontend developers inspecting network requests, backend engineers debugging webhook integrations, QA testers validating API query parameters, and anyone who regularly copies URLs from browser address bars or log files. Beyond simple decoding, the tool also validates the JSON structure after decoding, so you know immediately whether the underlying data is well-formed or malformed. Whether you're tracing a bug in a third-party API call, restoring a shared URL containing configuration data, or just trying to understand what a complex GET request is actually sending, the URL Decode JSON tool gives you clarity in seconds.
How It Works
The URL Decode JSON applies its selected transformation logic to your input and produces output based on the options you choose.
It applies a fixed set of transformation rules to your input, so the output is stable and easy to verify.
All processing happens in your browser, so your input stays on your device during the transformation.
Common Use Cases
- Extracting and reading JSON data embedded in URL query parameters during API debugging sessions.
- Decoding percent-encoded JSON payloads found in browser address bars after form submissions or redirects.
- Restoring JSON configuration objects stored in bookmarked or shared URLs to inspect their original structure.
- Reading and validating JSON data sent through webhook URLs from services like Stripe, GitHub, or Zapier.
- Converting URL-encoded API responses or error payloads into readable JSON for troubleshooting integration issues.
- Decoding JSON stored in OAuth redirect URIs or state parameters to verify correct data flow during authentication.
- Inspecting encoded query strings in server log files to understand what data clients are actually sending.
How to Use
- Paste the full URL-encoded JSON string into the input field — this can be a raw percent-encoded string, a complete URL with query parameters, or just the value portion of a key-value pair.
- The tool automatically detects and decodes all percent-encoded characters, replacing sequences like %7B with '{', %22 with '"', %3A with ':', and so on, reconstructing the original JSON text.
- Review the decoded output in the result panel, which displays the restored JSON in a readable format so you can inspect keys, values, and nested structures at a glance.
- Check the validation indicator to confirm whether the decoded result is valid, well-formed JSON — this helps you distinguish between an encoding issue and an underlying data structure problem.
- Copy the decoded JSON to your clipboard with one click for use in your code editor, API client, documentation, or further processing.
Features
- Full percent-encoding reversal that handles all RFC 3986 reserved and unreserved characters, including spaces, brackets, quotes, and special symbols.
- Support for deeply nested JSON structures, correctly decoding multi-level objects and arrays without corrupting hierarchy or data types.
- Post-decode JSON validation that immediately flags whether the decoded output is syntactically valid JSON, saving you an extra manual check.
- Preservation of all original JSON data types — strings, numbers, booleans, nulls, arrays, and objects are all restored exactly as they were before encoding.
- Handles both fully encoded strings and partially encoded strings, gracefully processing inputs where only some characters were percent-encoded.
- Instant, client-side processing with no server round-trip, so your potentially sensitive JSON data never leaves your browser.
- One-click copy of decoded output, making it easy to move the restored JSON directly into your development workflow.
Examples
Below is a representative input and output so you can see the transformation clearly.
hello%20world%3F
hello world?
Edge Cases
- Very large inputs may take a few seconds to process in the browser. If performance slows, split the input into smaller batches.
- Mixed formatting (tabs, line breaks, or inconsistent delimiters) can affect output. Normalize spacing first if needed.
- URL Decode JSON follows the selected options strictly. If the output looks unexpected, re-check option settings and input format.
Troubleshooting
- Output looks unchanged: confirm the input contains the pattern this tool modifies and that the correct options are selected.
- Output differs from a previous run: confirm that the input and every option match, because deterministic tools should repeat when the settings are identical.
- Unexpected characters: check for hidden whitespace or encoding issues in the input and try normalizing first.
- Slow processing: reduce input size or try a modern browser with more available memory.
Tips
If the decoded output isn't valid JSON, check whether the original string was properly formed JSON before it was encoded — encoding cannot fix pre-existing syntax errors like missing commas or unmatched brackets. When copying encoded strings from a browser address bar, make sure you're grabbing only the value portion of the parameter rather than the entire URL, unless you want to decode the whole thing. For deeply nested or doubly-encoded strings (where JSON was encoded, then encoded again), you may need to run the decoded output through the tool a second time. Always compare the key count and structure of the decoded output against your expected schema to catch any truncation that may have happened during URL transmission.
Frequently Asked Questions
What is URL encoding and why does JSON get encoded?
URL encoding (also called percent-encoding) is a way to represent characters that are not safe to include directly in a URL by replacing them with a percent sign followed by their hexadecimal code point. JSON uses characters like curly braces, quotes, colons, and brackets — all of which have special meaning in URLs or are outright forbidden. When JSON data needs to be transmitted as part of a URL query string or path segment, these characters must be encoded to prevent the URL from being misinterpreted. The result is a long string of percent-codes that accurately represents the original JSON but is unreadable without decoding.
What's the difference between URL decoding and Base64 decoding?
URL decoding reverses percent-encoding by replacing sequences like %7B and %22 with their original characters ({ and "). Base64 decoding converts a Base64-encoded string — which looks like eyJpZCI6MX0= — back into its original text. Both are used to transport data safely in different contexts: percent-encoding is designed for URL-safe transmission, while Base64 is used in HTTP headers, data URIs, and token payloads. If you paste a string into this tool and get garbled output, your input may be Base64-encoded rather than percent-encoded, and you should use a Base64 decoder instead. The key visual difference is that percent-encoded strings contain many % signs, while Base64 strings contain only letters, numbers, +, /, and =.
Why does the tool say my decoded JSON is invalid?
This typically means the JSON was malformed before it was ever encoded — URL encoding faithfully preserves whatever data it wraps, including syntax errors. Common causes include truncated strings (the original JSON was cut off before encoding), unescaped special characters inside string values, or a missing closing bracket or brace. Another possibility is that the string was encoded more than once (double-encoded), in which case you'll need to run it through the decoder a second time. You can also check whether the input is actually Base64-encoded JSON rather than percent-encoded JSON.
Can I decode a full URL or just the JSON value portion?
You can paste either a full URL or just the encoded value — the tool handles both. If you paste an entire URL like https://example.com/callback?data=%7B%22id%22%3A1%7D, the tool will decode all percent-encoded sequences throughout the string. If you want to extract only the JSON portion cleanly, copy just the value after the = sign (i.e., %7B%22id%22%3A1%7D) before pasting. Decoding the full URL is convenient for a quick look, but isolating the JSON value gives you a cleaner result that passes JSON validation.
Is my JSON data safe to decode using this tool?
Yes — this tool performs all decoding entirely in your browser using client-side JavaScript. Your input data is never sent to any server, stored, or logged. This makes it safe to use with sensitive JSON payloads such as API tokens, user data, or internal configuration objects. You can verify this by checking your browser's network activity while using the tool — no outbound requests are made.
What does double-encoding mean and how do I handle it?
Double-encoding happens when a string that is already percent-encoded gets encoded a second time. For example, %7B becomes %257B after a second pass (because % itself encodes to %25). This often happens when data passes through multiple systems that each apply their own encoding step without checking whether encoding was already applied. If your decoded output still contains percent-encoded sequences rather than readable JSON, run it through the decoder again — a second pass will resolve one level of double-encoding. If the problem persists, trace back to the source system to determine how many times the data was encoded.