Overview
Paste a Base64 string or data URI to decode it as UTF-8 text and parse that text as JSON, with the result shown as clean, indented JSON. Errors are surfaced in three distinct stages so it's always clear which layer failed: invalid Base64 (bad alphabet or padding), valid Base64 whose bytes aren't valid UTF-8 text, or valid UTF-8 text that isn't valid JSON. This is genuinely different from decoding to plain text, since it validates and re-formats the JSON structure rather than just returning raw decoded characters. For an interactive collapsible tree view of the same data, paste the decoded text into the JSON Tree Viewer. Runs entirely client-side; nothing you paste is ever uploaded.
Best for: Decoding a Base64-encoded JSON payload (e.g. a JWT claim or API response) into readable, validated JSON
How to use this tool
- Paste Base64 or a data URI. A data URI prefix is stripped automatically if present.
- Decoded to UTF-8 text. The Base64 string is decoded to bytes, then those bytes are decoded as UTF-8.
- Parsed as JSON. The decoded text is parsed with JSON.parse and re-formatted with 2-space indentation.
- Copy the result. Grab the formatted JSON with one click.
Why use this tool
Three-stage error model
Invalid Base64, invalid UTF-8, and invalid JSON are each reported with their own specific message.
Actually validates structure
Unlike plain text decoding, this confirms the result is well-formed JSON, not just readable text.
Data URI support
Paste a full data URI and the base64 payload is extracted automatically.
Nothing leaves your browser
Decoding and parsing happen entirely client-side.
Frequently asked questions
The Base64 Decoder just returns decoded text, whatever it is. This tool additionally parses that text as JSON and re-formats it, with a specific error if the decoded text isn't valid JSON.
That's reported as its own distinct error - "valid Base64, but not valid UTF-8 text" - separate from a Base64 error or a JSON error, so it's always clear which stage failed.