JSONProbe

JSON Validator

Checks whether a file is legal JSON and points at the first place the grammar breaks, down to the line and column. It all runs in your tab; the text is never sent anywhere.

Input empty
Drop a.json file here — read locally, never uploaded
Result

          

Ctrl / Cmd + Enter formats as well.

A validator answers one question: does this parse as a single JSON value under RFC 8259. It says nothing about whether the content is what your API expected — that is schema validation, a separate check on a separate page.

Most validators in this category just relay the engine's message. Current V8 frequently reports something like Unexpected token '@', … is not valid JSON — a fragment of your text and no position. This page carries its own scanner for exactly that case, so you get a line and a column instead. Measured in Chrome 152 / Windows 11: a fault on line 2,419,794 of a 100 MB file is located in 1026 ms.

What this rejects

And what it accepts that surprises people: duplicate keys. {"a":1,"a":2} is valid JSON, and the last value wins. That is legal, not a typo the validator will flag.

Syntax checking and schema checking are not the same thing

Syntax validationSchema validation
Question answeredIs this JSON at all? Is this JSON the shape I expected?
Needsnothing elsea schema document
Fails ona trailing commaa missing required field
This sitethis page JSON Schema validator

Order matters: a schema check on text that is not JSON is meaningless, so the schema page parses first and reports the syntax error if there is one.

Frequently asked questions

Is my JSON sent to a server?

No. There is no request in the code path — the text is parsed in a Web Worker inside the same tab. No request this page makes carries your document.

Can it check my JSON against a schema?

Not on this page. This one only answers "is it valid JSON". Schema validation is a separate tool and it is a draft-07 subset — see the JSON Schema validator page for what is and is not implemented.

The error says a position like 148203. How do I find that?

Older engines printed a character offset; you were left counting. This page prints line and column, plus the surrounding text of that line, because it locates the fault itself rather than relaying the engine.

Why does my .json file fail when the editor is happy with it?

The editor is probably reading JSONC or JSON5, which allow comments, trailing commas and unquoted keys. Those are not JSON. Either strip the extensions or keep the file named .jsonc.

Is an empty file valid JSON?

No. A JSON text must contain exactly one value, and an empty file contains none. Neither is {} equivalent — if you want "nothing", write null.

Related tools