Base64 Encoder / Decoder
Encode your JSON payload as Base64 for API transport — or decode a Base64 string back to readable JSON.
Open toolHome › Tools › Developer Tools › JSON Formatter
Paste any JSON to instantly format it with readable indentation or minify it to one line. Syntax errors show the exact line and column. 100% in-browser — nothing leaves your device.
JSON.parse() + JSON.stringify(). Your data is never uploaded or stored.
JSON Formatter & Validator reads any JSON string — raw, minified, hand-written, or copied from a terminal — and outputs properly indented, human-readable text. Paste the input, click Format, and every key-value pair appears at the correct indent level, with nested objects and arrays indented one step deeper than their parents.
Three modes are available from the same interface. Format adds 2-space indentation and writes every bracket and brace on its own line. Minify reverses that: it strips all whitespace, newlines, and indentation to produce the smallest valid JSON string. Validate runs during both operations — if the input has a syntax error, the exact line and column of the first violation appear before anything else runs.
Validation is exact because it uses the real parser. Both formatting and validation run in your browser using the JavaScript runtime's native JSON.parse() — the same parser running in Chrome, Firefox, Safari, and Node.js. When JSON.parse() fails, it returns the exact offset of the first error. There is no secondary parser approximating the position. If your JSON fails in this tool, it will fail identically in every JavaScript environment.
No JSON leaves your browser. Nothing is sent to any server. This matters when the input contains credentials, API keys, session tokens, database records, or any data subject to privacy requirements. Pasting into this formatter carries the same risk profile as opening the file in a text editor. The output stays in the tab; closing the tab removes every trace.
The formatter handles all six standard JSON data types: objects ({}), arrays ([]), strings (including Unicode and emoji), numbers (integers and floats), booleans, and null. It does not handle JSON5 (which allows comments and trailing commas), JSONC (JSON with comments used in some VS Code configuration files), or NDJSON (newline-delimited JSON where each line is a separate JSON object). Those formats require a different parser; pasting them here produces a syntax error at the first comment or trailing comma.
For large inputs — API exports, database snapshots, structured log files — the formatter works in-browser up to available tab memory. Inputs in the tens of megabytes process without issue. No per-file limit is enforced.
A JSON formatter takes compact or inconsistently indented JSON and outputs it with consistent 2-space indentation, one key-value pair per line, brackets at the correct nesting level. This makes the data structure readable at a glance and easier to scan for unexpected fields or missing values.
JSON syntax is strict — a single trailing comma after the last item in an array or object causes every JSON parser to fail, in every language. Validating before use catches these errors before they reach production code, a CI pipeline, or an API endpoint.
Standard JSON (RFC 8259) allows no comments. JSONC adds // and /* */ comments, which VS Code uses internally for files like settings.json and keybindings.json. JSONC is not valid JSON — JSON.parse() fails at the first comment character. If you paste a VS Code config file and see a parse error on the // line, that is why.
No. Trailing commas after the last item in an object or array are valid in JavaScript and JSON5, but not in standard JSON. The validator reports an error at the trailing comma. Remove trailing commas first, then format.
No. Formatting and validation run entirely in your browser using the native JavaScript JSON.parse() and JSON.stringify() functions. Nothing is uploaded, transmitted, or stored anywhere.
Yes. JSON strings are Unicode by specification (RFC 8259 section 8.1). Emoji, non-ASCII characters, and 4-byte code points all round-trip correctly through JSON.parse() and JSON.stringify() without modification.
Keep going
Encode your JSON payload as Base64 for API transport — or decode a Base64 string back to readable JSON.
Open toolCompare two JSON payloads side by side — format both here first, then diff to isolate exactly which keys or values changed.
Open toolDecode the JSON payload inside any JWT — JWT headers and payloads are Base64url-encoded JSON objects.
Open toolTest regex patterns against JSON keys or string values — validate field name conventions before writing schema validation code.
Open tool