Base64 to JSON
Decode Base64 then parse as JSON.
Loading…
About Base64 to JSON
A JSON payload tucked inside a header, a message body or a config value is unreadable until it is decoded. Paste the Base64 string and the page decodes it as UTF-8 text, checks that the result is JSON and prints it with two-space indentation. Because those are three separate steps, the error tells you which one failed: the Base64 itself, the text encoding, or the JSON syntax. Spaces and line breaks inside the string are ignored.
Features
- Decodes standard and URL-safe Base64, with or without padding
- Ignores spaces and line breaks inside the string
- Pretty-prints the decoded JSON with two-space indentation
- Separate messages for invalid Base64, non-text bytes and invalid JSON
- Output updates as you paste or type
Limitations
- A data: URI prefix, or a whole JWT with its dots, is rejected as invalid Base64. Paste only the encoded segment you want to read.
- The decoded bytes must be valid UTF-8 text, so a Base64 image or other binary data is rejected.
- The decoded text must be valid JSON; nothing is repaired, and JSON nested more than 1,000 levels deep is refused.
How it works
- Paste the Base64 string into the Base64 Input panel.
- Read the decoded, formatted JSON in the JSON Output panel; it updates as you type or paste.
- If an error message appears, it says whether the Base64, the text encoding or the JSON is the problem.
- Select Copy Output to copy the formatted JSON.
- Press Clear All to decode another string.
Example input
eyJuYW1lIjoiQXVybyIsInRvb2xzIjpbInRva2VuLWNvdW50ZXIiXX0=Frequently asked questions
- The Base64 is valid, but what it holds is not text, which is typical for an image, a compressed blob or encrypted data. This tool can only show JSON, so it stops there instead of printing garbled characters.
- Yes, if you paste only the middle segment, without the dots. JWT segments use the URL-safe alphabet, which this decoder accepts without padding. It shows the claims only and does not verify the signature.
- No. Equals signs at the end are optional, whitespace is stripped before decoding, and both the plus and slash form and the dash and underscore form are understood.
- That tool turns Base64 into plain text and back. This one also checks that the text is JSON and formats it, so a payload that decodes but is not valid JSON is reported as an error instead of shown.
- No. Decoding and formatting both run in the page, and nothing you paste is sent to a server.
