Paste or type JSON on the left; the right side formats it live and parses it into a collapsible tree, pointing straight at any syntax error. Expand or collapse nodes one by one or all at once, beautify or minify, and copy node paths and values. All parsing happens locally in your browser and nothing is uploaded.
About formatting and validating JSON
When to format and when to minify
Both only touch whitespace — the data itself is identical either way. Formatting adds line breaks and indentation for human eyes: use it while debugging an API, reading logs or reviewing a config file. Minifying strips every bit of optional whitespace to cut the size: use it when writing a request body, storing a value in a database or stuffing one into an environment variable. JSON crammed onto a single line is not "broken", it simply has not been laid out for reading — paste it in and format it.
The most common reasons parsing fails
Roughly in order of frequency: a trailing comma after the last element; single quotes instead of double quotes; a double-slash comment; an unquoted key; a value of NaN or undefined, or Python-style True / None; an unescaped line break or backslash inside a string. Every one of those is legal in JavaScript or Python source, but the JSON standard does not accept them, which is why pasting a snippet out of code trips this so often. There is also an invisible variant: a BOM or non-printing whitespace at the start of the file, which can sneak in when you save from Notepad or copy from a web page.
Why read API responses as a tree
Real API responses are routinely five or six levels deep, and hunting through them by indentation alone is tiring. A tree view lets you collapse the branches you don't care about, shows at a glance how many elements an array holds and how deep a field sits, and lets you copy a node's path straight into your code. When you are chasing a production issue, the JSON in the log is often nested again as a string, carrying a pile of backslashes — unescape it first and it expands normally.
JSON is not a JavaScript object
JSON is a data interchange format with exactly six types — object, array, string, number, boolean and null. Keys must be wrapped in double quotes, and functions, date objects, comments and trailing commas are all disallowed. A JavaScript object literal is far more permissive. Note too that JSON puts no limit on numeric precision, while most parsers handle numbers as double-precision floats: integers above 2^53 (a snowflake-style ID, for instance) lose their last few digits. Fields like that are best passed as strings in the API.