A JSON formatter that tells you what is wrong
Most validators say “Unexpected token”. This one tells you which line and column, shows the line, and explains the mistake — then offers a one-click repair when it can. Valid JSON is beautified with your chosen indent, or minified to the smallest possible size for production payloads.
Tree view for deeply nested JSON
Switch to the tree to fold sections, jump around a large response and copy values you care about. When you are done exploring, open the same data as a sortable table.
How to use JSON Formatter & Validator
- Paste JSON or drop a file into the input.
- Choose Format or Minify, pick the indent and optionally sort keys.
- Use Tree to collapse and expand sections.
- Copy or download the result, or press Open as table to continue in the table tool.
Private by design
JSON Formatter & Validator runs entirely in your browser. Your data is parsed and converted on your device with JavaScript — it is never sent to a server, logged or used for analytics. Recent inputs are kept in your browser’s own storage so you can come back to them, and they disappear when you clear cookies and site data (or press Clear history). You can verify this in your browser’s network tab.
Frequently asked questions
How does the JSON validator report errors?
It points to the exact line and column, shows the offending line with a caret, and explains the problem in plain words — for example "Trailing comma" or "Property names must use double quotes". The messages are identical in every browser.
Can it fix broken JSON?
Yes. When the input can be repaired — comments, trailing commas, single quotes, unquoted keys, Python-style True/False/None — an Auto-fix button appears. You always see the result before using it.
Is there a size limit?
There is no upload, so the limit is your browser’s memory. Files up to tens of megabytes format in a second or two. Syntax highlighting is skipped for outputs over about 1.5 MB to keep scrolling smooth.
What is the tree view for?
It lets you collapse and expand objects and arrays so you can explore deeply nested responses without scrolling through thousands of lines. Branches are built only when you open them, so even huge documents stay fast.