Skip to content
{ }JSON Formatter

Base64 to JSON

Decode a Base64 string back to formatted JSON — UTF-8 safe, tolerant of URL-safe input and missing padding.

Input
Output
Paste input and press Decode to JSON.

Base64 in, readable JSON out

Paste a Base64 string — from a data URI, a token payload, a config value — and get the decoded JSON, pretty-printed and validated. The decoder is UTF-8 aware, so encoded Unicode comes back intact, and it tolerates the two things that trip up naive decoders: URL-safe Base64 (- and _ instead of + and /) and missing = padding.

Clear errors when it isn't JSON

Two things can go wrong, and the tool distinguishes them: the input might not be valid Base64 at all, or it might decode to text that isn't JSON. You get a specific message for each, instead of a silent empty result — so you know whether to fix the Base64 or look at what it actually contains. Going the other way? JSON to Base64 is the encoder.

Decoding a JWT?

A JWT is three Base64url segments joined by dots (header.payload.signature). Paste just the middle payload segment here to read its JSON claims — the URL-safe alphabet and missing padding are handled automatically. (This decodes; it does not verify the signature.)

Frequently asked questions

Does it accept URL-safe Base64?

Yes — the - and _ characters are mapped to + and / automatically, and missing = padding is added. So Base64url strings (as used in JWTs and URLs) decode without manual fixing.

What if the decoded text is not JSON?

You get a clear message: either "Not valid Base64" (the input could not be decoded) or "Decoded, but the result is not valid JSON" (it decoded to text that is not JSON). The distinction tells you where to look.

Can I decode a JWT payload with this?

The payload segment, yes — paste the middle part (between the two dots) to read its claims as JSON. It decodes only; it does not validate the signature, which requires the signing key.

Is Unicode preserved?

Yes — decoding is UTF-8 aware, so München, 你好 and emoji come back exactly as they were before encoding.